#include "CMath.h"
#include "CMathFixed.h"



const uint32	CMathFixed::FBits				= CMathFixed_NumberOfFractionalBits; 
const fixed		CMathFixed::One					= CMathFixed_One;

const fixed		CMathFixed::PI					= CMathFixed_PI;
const fixed		CMathFixed::PI2					= CMathFixed_PI2;

const fixed		CMathFixed::Degrees_15			= CMathFixed_Int32ToFixed( 15 );
const fixed		CMathFixed::Degrees_30			= CMathFixed_Int32ToFixed( 30 );
const fixed		CMathFixed::Degrees_33			= CMathFixed_Int32ToFixed( 33 );
const fixed		CMathFixed::Degrees_45			= CMathFixed_Int32ToFixed( 45 );
const fixed		CMathFixed::Degrees_60			= CMathFixed_Int32ToFixed( 60 );
const fixed		CMathFixed::Degrees_90			= CMathFixed_Int32ToFixed( 90 );
const fixed		CMathFixed::Degrees_180			= CMathFixed_Int32ToFixed( 180 );
const fixed		CMathFixed::Degrees_270			= CMathFixed_Int32ToFixed( 270 );
const fixed		CMathFixed::Degrees_360			= CMathFixed_Int32ToFixed( 360 );

const fixed		CMathFixed::UnitTolerance		= CMathFixed_FloatToFixed( 0.01f );
const fixed		CMathFixed::ClampToUnitError	= One + UnitTolerance;


fixed CMathFixed::Sqrt( fixed val )
{
	return ( (fixed) ( CMath::Sqrt( (uint32) val ) << ( CMathFixed::FBits >> 1 ) ) );
}


boolean	CMathFixed::SolveQuadraticForReals( fixed* root1, fixed* root2, fixed a, fixed b, fixed c )
{
	boolean real = FALSE;
	fixed q, sq, denomInv;

	// SANITY CHECK
	ASSERT( root1 != NULL );
	ASSERT( root2 != NULL );

	q = Mul( b, b ) - ( Mul( a, c ) << 2 );

    if( q >= 0 && a != 0 )
    {        
        sq = Sqrt( q ) << ( FBits >> 1 );

		denomInv = Div( One, a << 1 );

        *root1 = Mul( -b + sq, denomInv );
        *root2 = Mul( -b - sq, denomInv );

		real = TRUE;
    }
	
	return real;
}


fixed CMathFixed::ACos( fixed b )
{
	return ( CMathFixed::Degrees_90 - ASin( b ) ); 	
}


#if( CMathFixed_NumberOfFractionalBits < 9 )

#define ASin_NumOfEntriesInLUT 63
#define ASin_FBits 6
#define ASin_One (1 << ASin_FBits )
#define ASin_FixedToASin(v) ( (((int8)CMathFixed::FBits >= (int8)ASin_FBits)? (v)>>((int8)CMathFixed::FBits - (int8)ASin_FBits) : \
                                                                  (v)<<((int8)ASin_FBits - (int8)CMathFixed::FBits)) )
static const fixed ASinLUT[] = {
    CMathFixed_FloatToFixed( 0.000000f ), CMathFixed_FloatToFixed( 0.909495f ),
    CMathFixed_FloatToFixed( 1.819219f ), CMathFixed_FloatToFixed( 2.729403f ),
    CMathFixed_FloatToFixed( 3.640276f ), CMathFixed_FloatToFixed( 4.552072f ),
    CMathFixed_FloatToFixed( 5.465024f ), CMathFixed_FloatToFixed( 6.379370f ),
    CMathFixed_FloatToFixed( 7.295352f ), CMathFixed_FloatToFixed( 8.213211f ),
    CMathFixed_FloatToFixed( 9.133198f ), CMathFixed_FloatToFixed( 10.055566f ),
    CMathFixed_FloatToFixed( 10.980576f ), CMathFixed_FloatToFixed( 11.908491f ),
    CMathFixed_FloatToFixed( 12.839588f ), CMathFixed_FloatToFixed( 13.774147f ),
    CMathFixed_FloatToFixed( 14.712459f ), CMathFixed_FloatToFixed( 15.654822f ),
    CMathFixed_FloatToFixed( 16.601549f ), CMathFixed_FloatToFixed( 17.552965f ),
    CMathFixed_FloatToFixed( 18.509405f ), CMathFixed_FloatToFixed( 19.471220f ),
    CMathFixed_FloatToFixed( 20.438780f ), CMathFixed_FloatToFixed( 21.412466f ),
    CMathFixed_FloatToFixed( 22.392687f ), CMathFixed_FloatToFixed( 23.379868f ),
    CMathFixed_FloatToFixed( 24.374458f ), CMathFixed_FloatToFixed( 25.376932f ),
    CMathFixed_FloatToFixed( 26.387800f ), CMathFixed_FloatToFixed( 27.407595f ),
    CMathFixed_FloatToFixed( 28.436890f ), CMathFixed_FloatToFixed( 29.476299f ),
    CMathFixed_FloatToFixed( 30.526480f ), CMathFixed_FloatToFixed( 31.588137f ),
    CMathFixed_FloatToFixed( 32.662033f ), CMathFixed_FloatToFixed( 33.748989f ),
    CMathFixed_FloatToFixed( 34.849907f ), CMathFixed_FloatToFixed( 35.965755f ),
    CMathFixed_FloatToFixed( 37.097603f ), CMathFixed_FloatToFixed( 38.246620f ),
    CMathFixed_FloatToFixed( 39.414101f ), CMathFixed_FloatToFixed( 40.601467f ),
    CMathFixed_FloatToFixed( 41.810314f ), CMathFixed_FloatToFixed( 43.042423f ),
    CMathFixed_FloatToFixed( 44.299793f ), CMathFixed_FloatToFixed( 45.584690f ),
    CMathFixed_FloatToFixed( 46.899704f ), CMathFixed_FloatToFixed( 48.247795f ),
    CMathFixed_FloatToFixed( 49.632408f ), CMathFixed_FloatToFixed( 51.057560f ),
    CMathFixed_FloatToFixed( 52.528004f ), CMathFixed_FloatToFixed( 54.049431f ),
    CMathFixed_FloatToFixed( 55.628742f ), CMathFixed_FloatToFixed( 57.274456f ),
    CMathFixed_FloatToFixed( 58.997280f ), CMathFixed_FloatToFixed( 60.811016f ),
    CMathFixed_FloatToFixed( 62.733955f ), CMathFixed_FloatToFixed( 64.791237f ),
    CMathFixed_FloatToFixed( 67.019081f ), CMathFixed_FloatToFixed( 69.473145f ),
    CMathFixed_FloatToFixed( 72.247208f ), CMathFixed_FloatToFixed( 75.524353f ),
    CMathFixed_FloatToFixed( 79.777817f )
};

#elif( CMathFixed_NumberOfFractionalBits < 12 )

#define ASin_NumOfEntriesInLUT 255
#define ASin_FBits 8
#define ASin_One (1 << ASin_FBits )
#define ASin_FixedToASin(v) ( (((int8)CMathFixed::FBits >= (int8)ASin_FBits)? (v)>>((int8)CMathFixed::FBits - (int8)ASin_FBits) : \
                                                                  (v)<<((int8)ASin_FBits - (int8)CMathFixed::FBits)) )
static const fixed ASinLUT[] = {
    CMathFixed_FloatToFixed( 0.000000f ), CMathFixed_FloatToFixed( 0.224690f ),
    CMathFixed_FloatToFixed( 0.449383f ), CMathFixed_FloatToFixed( 0.674084f ),
    CMathFixed_FloatToFixed( 0.898794f ), CMathFixed_FloatToFixed( 1.123519f ),
    CMathFixed_FloatToFixed( 1.348260f ), CMathFixed_FloatToFixed( 1.573023f ),
    CMathFixed_FloatToFixed( 1.797810f ), CMathFixed_FloatToFixed( 2.022624f ),
    CMathFixed_FloatToFixed( 2.247470f ), CMathFixed_FloatToFixed( 2.472350f ),
    CMathFixed_FloatToFixed( 2.697268f ), CMathFixed_FloatToFixed( 2.922228f ),
    CMathFixed_FloatToFixed( 3.147233f ), CMathFixed_FloatToFixed( 3.372287f ),
    CMathFixed_FloatToFixed( 3.597393f ), CMathFixed_FloatToFixed( 3.822554f ),
    CMathFixed_FloatToFixed( 4.047774f ), CMathFixed_FloatToFixed( 4.273057f ),
    CMathFixed_FloatToFixed( 4.498407f ), CMathFixed_FloatToFixed( 4.723826f ),
    CMathFixed_FloatToFixed( 4.949318f ), CMathFixed_FloatToFixed( 5.174887f ),
    CMathFixed_FloatToFixed( 5.400537f ), CMathFixed_FloatToFixed( 5.626271f ),
    CMathFixed_FloatToFixed( 5.852092f ), CMathFixed_FloatToFixed( 6.078005f ),
    CMathFixed_FloatToFixed( 6.304012f ), CMathFixed_FloatToFixed( 6.530118f ),
    CMathFixed_FloatToFixed( 6.756327f ), CMathFixed_FloatToFixed( 6.982641f ),
    CMathFixed_FloatToFixed( 7.209065f ), CMathFixed_FloatToFixed( 7.435602f ),
    CMathFixed_FloatToFixed( 7.662256f ), CMathFixed_FloatToFixed( 7.889030f ),
    CMathFixed_FloatToFixed( 8.115930f ), CMathFixed_FloatToFixed( 8.342957f ),
    CMathFixed_FloatToFixed( 8.570116f ), CMathFixed_FloatToFixed( 8.797411f ),
    CMathFixed_FloatToFixed( 9.024845f ), CMathFixed_FloatToFixed( 9.252423f ),
    CMathFixed_FloatToFixed( 9.480149f ), CMathFixed_FloatToFixed( 9.708026f ),
    CMathFixed_FloatToFixed( 9.936058f ), CMathFixed_FloatToFixed( 10.164248f ),
    CMathFixed_FloatToFixed( 10.392603f ), CMathFixed_FloatToFixed( 10.621123f ),
    CMathFixed_FloatToFixed( 10.849815f ), CMathFixed_FloatToFixed( 11.078683f ),
    CMathFixed_FloatToFixed( 11.307730f ), CMathFixed_FloatToFixed( 11.536959f ),
    CMathFixed_FloatToFixed( 11.766376f ), CMathFixed_FloatToFixed( 11.995984f ),
    CMathFixed_FloatToFixed( 12.225788f ), CMathFixed_FloatToFixed( 12.455792f ),
    CMathFixed_FloatToFixed( 12.686001f ), CMathFixed_FloatToFixed( 12.916417f ),
    CMathFixed_FloatToFixed( 13.147046f ), CMathFixed_FloatToFixed( 13.377892f ),
    CMathFixed_FloatToFixed( 13.608960f ), CMathFixed_FloatToFixed( 13.840254f ),
    CMathFixed_FloatToFixed( 14.071777f ), CMathFixed_FloatToFixed( 14.303536f ),
    CMathFixed_FloatToFixed( 14.535535f ), CMathFixed_FloatToFixed( 14.767776f ),
    CMathFixed_FloatToFixed( 15.000266f ), CMathFixed_FloatToFixed( 15.233009f ),
    CMathFixed_FloatToFixed( 15.466010f ), CMathFixed_FloatToFixed( 15.699274f ),
    CMathFixed_FloatToFixed( 15.932804f ), CMathFixed_FloatToFixed( 16.166607f ),
    CMathFixed_FloatToFixed( 16.400686f ), CMathFixed_FloatToFixed( 16.635048f ),
    CMathFixed_FloatToFixed( 16.869696f ), CMathFixed_FloatToFixed( 17.104635f ),
    CMathFixed_FloatToFixed( 17.339872f ), CMathFixed_FloatToFixed( 17.575411f ),
    CMathFixed_FloatToFixed( 17.811256f ), CMathFixed_FloatToFixed( 18.047415f ),
    CMathFixed_FloatToFixed( 18.283890f ), CMathFixed_FloatToFixed( 18.520689f ),
    CMathFixed_FloatToFixed( 18.757816f ), CMathFixed_FloatToFixed( 18.995275f ),
    CMathFixed_FloatToFixed( 19.233076f ), CMathFixed_FloatToFixed( 19.471220f ),
    CMathFixed_FloatToFixed( 19.709717f ), CMathFixed_FloatToFixed( 19.948566f ),
    CMathFixed_FloatToFixed( 20.187780f ), CMathFixed_FloatToFixed( 20.427362f ),
    CMathFixed_FloatToFixed( 20.667316f ), CMathFixed_FloatToFixed( 20.907650f ),
    CMathFixed_FloatToFixed( 21.148371f ), CMathFixed_FloatToFixed( 21.389482f ),
    CMathFixed_FloatToFixed( 21.630993f ), CMathFixed_FloatToFixed( 21.872908f ),
    CMathFixed_FloatToFixed( 22.115232f ), CMathFixed_FloatToFixed( 22.357975f ),
    CMathFixed_FloatToFixed( 22.601141f ), CMathFixed_FloatToFixed( 22.844738f ),
    CMathFixed_FloatToFixed( 23.088772f ), CMathFixed_FloatToFixed( 23.333250f ),
    CMathFixed_FloatToFixed( 23.578178f ), CMathFixed_FloatToFixed( 23.823565f ),
    CMathFixed_FloatToFixed( 24.069416f ), CMathFixed_FloatToFixed( 24.315739f ),
    CMathFixed_FloatToFixed( 24.562542f ), CMathFixed_FloatToFixed( 24.809832f ),
    CMathFixed_FloatToFixed( 25.057615f ), CMathFixed_FloatToFixed( 25.305901f ),
    CMathFixed_FloatToFixed( 25.554697f ), CMathFixed_FloatToFixed( 25.804010f ),
    CMathFixed_FloatToFixed( 26.053848f ), CMathFixed_FloatToFixed( 26.304222f ),
    CMathFixed_FloatToFixed( 26.555136f ), CMathFixed_FloatToFixed( 26.806602f ),
    CMathFixed_FloatToFixed( 27.058626f ), CMathFixed_FloatToFixed( 27.311218f ),
    CMathFixed_FloatToFixed( 27.564384f ), CMathFixed_FloatToFixed( 27.818138f ),
    CMathFixed_FloatToFixed( 28.072487f ), CMathFixed_FloatToFixed( 28.327438f ),
    CMathFixed_FloatToFixed( 28.583002f ), CMathFixed_FloatToFixed( 28.839190f ),
    CMathFixed_FloatToFixed( 29.096008f ), CMathFixed_FloatToFixed( 29.353470f ),
    CMathFixed_FloatToFixed( 29.611584f ), CMathFixed_FloatToFixed( 29.870359f ),
    CMathFixed_FloatToFixed( 30.129810f ), CMathFixed_FloatToFixed( 30.389944f ),
    CMathFixed_FloatToFixed( 30.650770f ), CMathFixed_FloatToFixed( 30.912304f ),
    CMathFixed_FloatToFixed( 31.174553f ), CMathFixed_FloatToFixed( 31.437532f ),
    CMathFixed_FloatToFixed( 31.701250f ), CMathFixed_FloatToFixed( 31.965719f ),
    CMathFixed_FloatToFixed( 32.230953f ), CMathFixed_FloatToFixed( 32.496964f ),
    CMathFixed_FloatToFixed( 32.763763f ), CMathFixed_FloatToFixed( 33.031364f ),
    CMathFixed_FloatToFixed( 33.299782f ), CMathFixed_FloatToFixed( 33.569027f ),
    CMathFixed_FloatToFixed( 33.839111f ), CMathFixed_FloatToFixed( 34.110058f ),
    CMathFixed_FloatToFixed( 34.381870f ), CMathFixed_FloatToFixed( 34.654572f ),
    CMathFixed_FloatToFixed( 34.928169f ), CMathFixed_FloatToFixed( 35.202682f ),
    CMathFixed_FloatToFixed( 35.478130f ), CMathFixed_FloatToFixed( 35.754524f ),
    CMathFixed_FloatToFixed( 36.031879f ), CMathFixed_FloatToFixed( 36.310215f ),
    CMathFixed_FloatToFixed( 36.589550f ), CMathFixed_FloatToFixed( 36.869900f ),
    CMathFixed_FloatToFixed( 37.151279f ), CMathFixed_FloatToFixed( 37.433712f ),
    CMathFixed_FloatToFixed( 37.717213f ), CMathFixed_FloatToFixed( 38.001804f ),
    CMathFixed_FloatToFixed( 38.287502f ), CMathFixed_FloatToFixed( 38.574333f ),
    CMathFixed_FloatToFixed( 38.862312f ), CMathFixed_FloatToFixed( 39.151459f ),
    CMathFixed_FloatToFixed( 39.441803f ), CMathFixed_FloatToFixed( 39.733360f ),
    CMathFixed_FloatToFixed( 40.026157f ), CMathFixed_FloatToFixed( 40.320217f ),
    CMathFixed_FloatToFixed( 40.615559f ), CMathFixed_FloatToFixed( 40.912216f ),
    CMathFixed_FloatToFixed( 41.210209f ), CMathFixed_FloatToFixed( 41.509567f ),
    CMathFixed_FloatToFixed( 41.810314f ), CMathFixed_FloatToFixed( 42.112480f ),
    CMathFixed_FloatToFixed( 42.416096f ), CMathFixed_FloatToFixed( 42.721188f ),
    CMathFixed_FloatToFixed( 43.027786f ), CMathFixed_FloatToFixed( 43.335922f ),
    CMathFixed_FloatToFixed( 43.645634f ), CMathFixed_FloatToFixed( 43.956947f ),
    CMathFixed_FloatToFixed( 44.269901f ), CMathFixed_FloatToFixed( 44.584530f ),
    CMathFixed_FloatToFixed( 44.900871f ), CMathFixed_FloatToFixed( 45.218964f ),
    CMathFixed_FloatToFixed( 45.538845f ), CMathFixed_FloatToFixed( 45.860558f ),
    CMathFixed_FloatToFixed( 46.184143f ), CMathFixed_FloatToFixed( 46.509644f ),
    CMathFixed_FloatToFixed( 46.837105f ), CMathFixed_FloatToFixed( 47.166573f ),
    CMathFixed_FloatToFixed( 47.498096f ), CMathFixed_FloatToFixed( 47.831730f ),
    CMathFixed_FloatToFixed( 48.167519f ), CMathFixed_FloatToFixed( 48.505524f ),
    CMathFixed_FloatToFixed( 48.845798f ), CMathFixed_FloatToFixed( 49.188400f ),
    CMathFixed_FloatToFixed( 49.533390f ), CMathFixed_FloatToFixed( 49.880833f ),
    CMathFixed_FloatToFixed( 50.230793f ), CMathFixed_FloatToFixed( 50.583344f ),
    CMathFixed_FloatToFixed( 50.938553f ), CMathFixed_FloatToFixed( 51.296494f ),
    CMathFixed_FloatToFixed( 51.657249f ), CMathFixed_FloatToFixed( 52.020901f ),
    CMathFixed_FloatToFixed( 52.387531f ), CMathFixed_FloatToFixed( 52.757236f ),
    CMathFixed_FloatToFixed( 53.130100f ), CMathFixed_FloatToFixed( 53.506233f ),
    CMathFixed_FloatToFixed( 53.885731f ), CMathFixed_FloatToFixed( 54.268707f ),
    CMathFixed_FloatToFixed( 54.655273f ), CMathFixed_FloatToFixed( 55.045555f ),
    CMathFixed_FloatToFixed( 55.439678f ), CMathFixed_FloatToFixed( 55.837776f ),
    CMathFixed_FloatToFixed( 56.239990f ), CMathFixed_FloatToFixed( 56.646477f ),
    CMathFixed_FloatToFixed( 57.057388f ), CMathFixed_FloatToFixed( 57.472904f ),
    CMathFixed_FloatToFixed( 57.893196f ), CMathFixed_FloatToFixed( 58.318462f ),
    CMathFixed_FloatToFixed( 58.748905f ), CMathFixed_FloatToFixed( 59.184742f ),
    CMathFixed_FloatToFixed( 59.626213f ), CMathFixed_FloatToFixed( 60.073563f ),
    CMathFixed_FloatToFixed( 60.527069f ), CMathFixed_FloatToFixed( 60.987015f ),
    CMathFixed_FloatToFixed( 61.453716f ), CMathFixed_FloatToFixed( 61.927513f ),
    CMathFixed_FloatToFixed( 62.408772f ), CMathFixed_FloatToFixed( 62.897896f ),
    CMathFixed_FloatToFixed( 63.395317f ), CMathFixed_FloatToFixed( 63.901516f ),
    CMathFixed_FloatToFixed( 64.417015f ), CMathFixed_FloatToFixed( 64.942383f ),
    CMathFixed_FloatToFixed( 65.478271f ), CMathFixed_FloatToFixed( 66.025375f ),
    CMathFixed_FloatToFixed( 66.584488f ), CMathFixed_FloatToFixed( 67.156494f ),
    CMathFixed_FloatToFixed( 67.742386f ), CMathFixed_FloatToFixed( 68.343300f ),
    CMathFixed_FloatToFixed( 68.960526f ), CMathFixed_FloatToFixed( 69.595543f ),
    CMathFixed_FloatToFixed( 70.250076f ), CMathFixed_FloatToFixed( 70.926125f ),
    CMathFixed_FloatToFixed( 71.626083f ), CMathFixed_FloatToFixed( 72.352783f ),
    CMathFixed_FloatToFixed( 73.109688f ), CMathFixed_FloatToFixed( 73.901062f ),
    CMathFixed_FloatToFixed( 74.732269f ), CMathFixed_FloatToFixed( 75.610207f ),
    CMathFixed_FloatToFixed( 76.544029f ), CMathFixed_FloatToFixed( 77.546295f ),
    CMathFixed_FloatToFixed( 78.635124f ), CMathFixed_FloatToFixed( 79.838287f ),
    CMathFixed_FloatToFixed( 81.202591f ), CMathFixed_FloatToFixed( 82.819298f ),
    CMathFixed_FloatToFixed( 84.924141f )
};

#else

#define ASin_NumOfEntriesInLUT 1023
#define ASin_FBits 10
#define ASin_One (1 << ASin_FBits )
#define ASin_FixedToASin(v) ( (((int8)CMathFixed::FBits >= (int8)ASin_FBits)? (v)>>((int8)CMathFixed::FBits - (int8)ASin_FBits) : \
                                                                  (v)<<((int8)ASin_FBits - (int8)CMathFixed::FBits)) )
static const fixed ASinLUT[] = {
    CMathFixed_FloatToFixed( 0.000000f ), CMathFixed_FloatToFixed( 0.056008f ),
    CMathFixed_FloatToFixed( 0.112015f ), CMathFixed_FloatToFixed( 0.168023f ),
    CMathFixed_FloatToFixed( 0.224031f ), CMathFixed_FloatToFixed( 0.280039f ),
    CMathFixed_FloatToFixed( 0.336048f ), CMathFixed_FloatToFixed( 0.392056f ),
    CMathFixed_FloatToFixed( 0.448065f ), CMathFixed_FloatToFixed( 0.504075f ),
    CMathFixed_FloatToFixed( 0.560085f ), CMathFixed_FloatToFixed( 0.616095f ),
    CMathFixed_FloatToFixed( 0.672107f ), CMathFixed_FloatToFixed( 0.728118f ),
    CMathFixed_FloatToFixed( 0.784131f ), CMathFixed_FloatToFixed( 0.840144f ),
    CMathFixed_FloatToFixed( 0.896158f ), CMathFixed_FloatToFixed( 0.952173f ),
    CMathFixed_FloatToFixed( 1.008189f ), CMathFixed_FloatToFixed( 1.064206f ),
    CMathFixed_FloatToFixed( 1.120224f ), CMathFixed_FloatToFixed( 1.176243f ),
    CMathFixed_FloatToFixed( 1.232263f ), CMathFixed_FloatToFixed( 1.288284f ),
    CMathFixed_FloatToFixed( 1.344306f ), CMathFixed_FloatToFixed( 1.400330f ),
    CMathFixed_FloatToFixed( 1.456355f ), CMathFixed_FloatToFixed( 1.512381f ),
    CMathFixed_FloatToFixed( 1.568409f ), CMathFixed_FloatToFixed( 1.624439f ),
    CMathFixed_FloatToFixed( 1.680470f ), CMathFixed_FloatToFixed( 1.736502f ),
    CMathFixed_FloatToFixed( 1.792536f ), CMathFixed_FloatToFixed( 1.848572f ),
    CMathFixed_FloatToFixed( 1.904610f ), CMathFixed_FloatToFixed( 1.960649f ),
    CMathFixed_FloatToFixed( 2.016691f ), CMathFixed_FloatToFixed( 2.072734f ),
    CMathFixed_FloatToFixed( 2.128779f ), CMathFixed_FloatToFixed( 2.184826f ),
    CMathFixed_FloatToFixed( 2.240876f ), CMathFixed_FloatToFixed( 2.296927f ),
    CMathFixed_FloatToFixed( 2.352981f ), CMathFixed_FloatToFixed( 2.409037f ),
    CMathFixed_FloatToFixed( 2.465095f ), CMathFixed_FloatToFixed( 2.521156f ),
    CMathFixed_FloatToFixed( 2.577219f ), CMathFixed_FloatToFixed( 2.633284f ),
    CMathFixed_FloatToFixed( 2.689352f ), CMathFixed_FloatToFixed( 2.745423f ),
    CMathFixed_FloatToFixed( 2.801496f ), CMathFixed_FloatToFixed( 2.857572f ),
    CMathFixed_FloatToFixed( 2.913651f ), CMathFixed_FloatToFixed( 2.969732f ),
    CMathFixed_FloatToFixed( 3.025816f ), CMathFixed_FloatToFixed( 3.081904f ),
    CMathFixed_FloatToFixed( 3.137994f ), CMathFixed_FloatToFixed( 3.194087f ),
    CMathFixed_FloatToFixed( 3.250183f ), CMathFixed_FloatToFixed( 3.306283f ),
    CMathFixed_FloatToFixed( 3.362385f ), CMathFixed_FloatToFixed( 3.418491f ),
    CMathFixed_FloatToFixed( 3.474600f ), CMathFixed_FloatToFixed( 3.530712f ),
    CMathFixed_FloatToFixed( 3.586828f ), CMathFixed_FloatToFixed( 3.642947f ),
    CMathFixed_FloatToFixed( 3.699070f ), CMathFixed_FloatToFixed( 3.755196f ),
    CMathFixed_FloatToFixed( 3.811326f ), CMathFixed_FloatToFixed( 3.867460f ),
    CMathFixed_FloatToFixed( 3.923597f ), CMathFixed_FloatToFixed( 3.979738f ),
    CMathFixed_FloatToFixed( 4.035883f ), CMathFixed_FloatToFixed( 4.092031f ),
    CMathFixed_FloatToFixed( 4.148184f ), CMathFixed_FloatToFixed( 4.204341f ),
    CMathFixed_FloatToFixed( 4.260501f ), CMathFixed_FloatToFixed( 4.316667f ),
    CMathFixed_FloatToFixed( 4.372835f ), CMathFixed_FloatToFixed( 4.429008f ),
    CMathFixed_FloatToFixed( 4.485186f ), CMathFixed_FloatToFixed( 4.541368f ),
    CMathFixed_FloatToFixed( 4.597554f ), CMathFixed_FloatToFixed( 4.653744f ),
    CMathFixed_FloatToFixed( 4.709939f ), CMathFixed_FloatToFixed( 4.766139f ),
    CMathFixed_FloatToFixed( 4.822343f ), CMathFixed_FloatToFixed( 4.878552f ),
    CMathFixed_FloatToFixed( 4.934766f ), CMathFixed_FloatToFixed( 4.990984f ),
    CMathFixed_FloatToFixed( 5.047207f ), CMathFixed_FloatToFixed( 5.103435f ),
    CMathFixed_FloatToFixed( 5.159668f ), CMathFixed_FloatToFixed( 5.215906f ),
    CMathFixed_FloatToFixed( 5.272149f ), CMathFixed_FloatToFixed( 5.328397f ),
    CMathFixed_FloatToFixed( 5.384650f ), CMathFixed_FloatToFixed( 5.440908f ),
    CMathFixed_FloatToFixed( 5.497172f ), CMathFixed_FloatToFixed( 5.553442f ),
    CMathFixed_FloatToFixed( 5.609715f ), CMathFixed_FloatToFixed( 5.665996f ),
    CMathFixed_FloatToFixed( 5.722281f ), CMathFixed_FloatToFixed( 5.778572f ),
    CMathFixed_FloatToFixed( 5.834868f ), CMathFixed_FloatToFixed( 5.891170f ),
    CMathFixed_FloatToFixed( 5.947478f ), CMathFixed_FloatToFixed( 6.003791f ),
    CMathFixed_FloatToFixed( 6.060111f ), CMathFixed_FloatToFixed( 6.116436f ),
    CMathFixed_FloatToFixed( 6.172767f ), CMathFixed_FloatToFixed( 6.229105f ),
    CMathFixed_FloatToFixed( 6.285448f ), CMathFixed_FloatToFixed( 6.341797f ),
    CMathFixed_FloatToFixed( 6.398152f ), CMathFixed_FloatToFixed( 6.454514f ),
    CMathFixed_FloatToFixed( 6.510882f ), CMathFixed_FloatToFixed( 6.567256f ),
    CMathFixed_FloatToFixed( 6.623637f ), CMathFixed_FloatToFixed( 6.680024f ),
    CMathFixed_FloatToFixed( 6.736418f ), CMathFixed_FloatToFixed( 6.792818f ),
    CMathFixed_FloatToFixed( 6.849225f ), CMathFixed_FloatToFixed( 6.905638f ),
    CMathFixed_FloatToFixed( 6.962059f ), CMathFixed_FloatToFixed( 7.018486f ),
    CMathFixed_FloatToFixed( 7.074919f ), CMathFixed_FloatToFixed( 7.131360f ),
    CMathFixed_FloatToFixed( 7.187808f ), CMathFixed_FloatToFixed( 7.244262f ),
    CMathFixed_FloatToFixed( 7.300724f ), CMathFixed_FloatToFixed( 7.357193f ),
    CMathFixed_FloatToFixed( 7.413669f ), CMathFixed_FloatToFixed( 7.470152f ),
    CMathFixed_FloatToFixed( 7.526643f ), CMathFixed_FloatToFixed( 7.583141f ),
    CMathFixed_FloatToFixed( 7.639647f ), CMathFixed_FloatToFixed( 7.696159f ),
    CMathFixed_FloatToFixed( 7.752680f ), CMathFixed_FloatToFixed( 7.809208f ),
    CMathFixed_FloatToFixed( 7.865743f ), CMathFixed_FloatToFixed( 7.922287f ),
    CMathFixed_FloatToFixed( 7.978838f ), CMathFixed_FloatToFixed( 8.035397f ),
    CMathFixed_FloatToFixed( 8.091964f ), CMathFixed_FloatToFixed( 8.148539f ),
    CMathFixed_FloatToFixed( 8.205121f ), CMathFixed_FloatToFixed( 8.261712f ),
    CMathFixed_FloatToFixed( 8.318311f ), CMathFixed_FloatToFixed( 8.374918f ),
    CMathFixed_FloatToFixed( 8.431534f ), CMathFixed_FloatToFixed( 8.488157f ),
    CMathFixed_FloatToFixed( 8.544789f ), CMathFixed_FloatToFixed( 8.601430f ),
    CMathFixed_FloatToFixed( 8.658078f ), CMathFixed_FloatToFixed( 8.714736f ),
    CMathFixed_FloatToFixed( 8.771402f ), CMathFixed_FloatToFixed( 8.828076f ),
    CMathFixed_FloatToFixed( 8.884760f ), CMathFixed_FloatToFixed( 8.941452f ),
    CMathFixed_FloatToFixed( 8.998153f ), CMathFixed_FloatToFixed( 9.054863f ),
    CMathFixed_FloatToFixed( 9.111582f ), CMathFixed_FloatToFixed( 9.168309f ),
    CMathFixed_FloatToFixed( 9.225046f ), CMathFixed_FloatToFixed( 9.281793f ),
    CMathFixed_FloatToFixed( 9.338548f ), CMathFixed_FloatToFixed( 9.395312f ),
    CMathFixed_FloatToFixed( 9.452085f ), CMathFixed_FloatToFixed( 9.508869f ),
    CMathFixed_FloatToFixed( 9.565661f ), CMathFixed_FloatToFixed( 9.622463f ),
    CMathFixed_FloatToFixed( 9.679276f ), CMathFixed_FloatToFixed( 9.736096f ),
    CMathFixed_FloatToFixed( 9.792927f ), CMathFixed_FloatToFixed( 9.849768f ),
    CMathFixed_FloatToFixed( 9.906618f ), CMathFixed_FloatToFixed( 9.963478f ),
    CMathFixed_FloatToFixed( 10.020349f ), CMathFixed_FloatToFixed( 10.077229f ),
    CMathFixed_FloatToFixed( 10.134119f ), CMathFixed_FloatToFixed( 10.191019f ),
    CMathFixed_FloatToFixed( 10.247930f ), CMathFixed_FloatToFixed( 10.304850f ),
    CMathFixed_FloatToFixed( 10.361781f ), CMathFixed_FloatToFixed( 10.418722f ),
    CMathFixed_FloatToFixed( 10.475674f ), CMathFixed_FloatToFixed( 10.532636f ),
    CMathFixed_FloatToFixed( 10.589609f ), CMathFixed_FloatToFixed( 10.646592f ),
    CMathFixed_FloatToFixed( 10.703586f ), CMathFixed_FloatToFixed( 10.760591f ),
    CMathFixed_FloatToFixed( 10.817606f ), CMathFixed_FloatToFixed( 10.874632f ),
    CMathFixed_FloatToFixed( 10.931669f ), CMathFixed_FloatToFixed( 10.988717f ),
    CMathFixed_FloatToFixed( 11.045776f ), CMathFixed_FloatToFixed( 11.102847f ),
    CMathFixed_FloatToFixed( 11.159928f ), CMathFixed_FloatToFixed( 11.217021f ),
    CMathFixed_FloatToFixed( 11.274125f ), CMathFixed_FloatToFixed( 11.331241f ),
    CMathFixed_FloatToFixed( 11.388367f ), CMathFixed_FloatToFixed( 11.445505f ),
    CMathFixed_FloatToFixed( 11.502655f ), CMathFixed_FloatToFixed( 11.559816f ),
    CMathFixed_FloatToFixed( 11.616989f ), CMathFixed_FloatToFixed( 11.674173f ),
    CMathFixed_FloatToFixed( 11.731370f ), CMathFixed_FloatToFixed( 11.788579f ),
    CMathFixed_FloatToFixed( 11.845798f ), CMathFixed_FloatToFixed( 11.903031f ),
    CMathFixed_FloatToFixed( 11.960276f ), CMathFixed_FloatToFixed( 12.017532f ),
    CMathFixed_FloatToFixed( 12.074800f ), CMathFixed_FloatToFixed( 12.132081f ),
    CMathFixed_FloatToFixed( 12.189375f ), CMathFixed_FloatToFixed( 12.246680f ),
    CMathFixed_FloatToFixed( 12.303998f ), CMathFixed_FloatToFixed( 12.361329f ),
    CMathFixed_FloatToFixed( 12.418672f ), CMathFixed_FloatToFixed( 12.476027f ),
    CMathFixed_FloatToFixed( 12.533396f ), CMathFixed_FloatToFixed( 12.590777f ),
    CMathFixed_FloatToFixed( 12.648171f ), CMathFixed_FloatToFixed( 12.705578f ),
    CMathFixed_FloatToFixed( 12.762998f ), CMathFixed_FloatToFixed( 12.820431f ),
    CMathFixed_FloatToFixed( 12.877877f ), CMathFixed_FloatToFixed( 12.935336f ),
    CMathFixed_FloatToFixed( 12.992808f ), CMathFixed_FloatToFixed( 13.050295f ),
    CMathFixed_FloatToFixed( 13.107794f ), CMathFixed_FloatToFixed( 13.165306f ),
    CMathFixed_FloatToFixed( 13.222833f ), CMathFixed_FloatToFixed( 13.280372f ),
    CMathFixed_FloatToFixed( 13.337925f ), CMathFixed_FloatToFixed( 13.395493f ),
    CMathFixed_FloatToFixed( 13.453074f ), CMathFixed_FloatToFixed( 13.510668f ),
    CMathFixed_FloatToFixed( 13.568276f ), CMathFixed_FloatToFixed( 13.625899f ),
    CMathFixed_FloatToFixed( 13.683536f ), CMathFixed_FloatToFixed( 13.741186f ),
    CMathFixed_FloatToFixed( 13.798851f ), CMathFixed_FloatToFixed( 13.856530f ),
    CMathFixed_FloatToFixed( 13.914224f ), CMathFixed_FloatToFixed( 13.971931f ),
    CMathFixed_FloatToFixed( 14.029654f ), CMathFixed_FloatToFixed( 14.087391f ),
    CMathFixed_FloatToFixed( 14.145143f ), CMathFixed_FloatToFixed( 14.202909f ),
    CMathFixed_FloatToFixed( 14.260690f ), CMathFixed_FloatToFixed( 14.318485f ),
    CMathFixed_FloatToFixed( 14.376296f ), CMathFixed_FloatToFixed( 14.434121f ),
    CMathFixed_FloatToFixed( 14.491962f ), CMathFixed_FloatToFixed( 14.549818f ),
    CMathFixed_FloatToFixed( 14.607689f ), CMathFixed_FloatToFixed( 14.665575f ),
    CMathFixed_FloatToFixed( 14.723476f ), CMathFixed_FloatToFixed( 14.781393f ),
    CMathFixed_FloatToFixed( 14.839326f ), CMathFixed_FloatToFixed( 14.897273f ),
    CMathFixed_FloatToFixed( 14.955236f ), CMathFixed_FloatToFixed( 15.013216f ),
    CMathFixed_FloatToFixed( 15.071211f ), CMathFixed_FloatToFixed( 15.129221f ),
    CMathFixed_FloatToFixed( 15.187247f ), CMathFixed_FloatToFixed( 15.245290f ),
    CMathFixed_FloatToFixed( 15.303349f ), CMathFixed_FloatToFixed( 15.361423f ),
    CMathFixed_FloatToFixed( 15.419514f ), CMathFixed_FloatToFixed( 15.477621f ),
    CMathFixed_FloatToFixed( 15.535744f ), CMathFixed_FloatToFixed( 15.593884f ),
    CMathFixed_FloatToFixed( 15.652040f ), CMathFixed_FloatToFixed( 15.710213f ),
    CMathFixed_FloatToFixed( 15.768402f ), CMathFixed_FloatToFixed( 15.826608f ),
    CMathFixed_FloatToFixed( 15.884830f ), CMathFixed_FloatToFixed( 15.943070f ),
    CMathFixed_FloatToFixed( 16.001328f ), CMathFixed_FloatToFixed( 16.059601f ),
    CMathFixed_FloatToFixed( 16.117891f ), CMathFixed_FloatToFixed( 16.176199f ),
    CMathFixed_FloatToFixed( 16.234524f ), CMathFixed_FloatToFixed( 16.292866f ),
    CMathFixed_FloatToFixed( 16.351225f ), CMathFixed_FloatToFixed( 16.409603f ),
    CMathFixed_FloatToFixed( 16.467997f ), CMathFixed_FloatToFixed( 16.526409f ),
    CMathFixed_FloatToFixed( 16.584839f ), CMathFixed_FloatToFixed( 16.643286f ),
    CMathFixed_FloatToFixed( 16.701752f ), CMathFixed_FloatToFixed( 16.760235f ),
    CMathFixed_FloatToFixed( 16.818737f ), CMathFixed_FloatToFixed( 16.877256f ),
    CMathFixed_FloatToFixed( 16.935793f ), CMathFixed_FloatToFixed( 16.994349f ),
    CMathFixed_FloatToFixed( 17.052923f ), CMathFixed_FloatToFixed( 17.111515f ),
    CMathFixed_FloatToFixed( 17.170126f ), CMathFixed_FloatToFixed( 17.228756f ),
    CMathFixed_FloatToFixed( 17.287403f ), CMathFixed_FloatToFixed( 17.346071f ),
    CMathFixed_FloatToFixed( 17.404757f ), CMathFixed_FloatToFixed( 17.463461f ),
    CMathFixed_FloatToFixed( 17.522184f ), CMathFixed_FloatToFixed( 17.580925f ),
    CMathFixed_FloatToFixed( 17.639687f ), CMathFixed_FloatToFixed( 17.698467f ),
    CMathFixed_FloatToFixed( 17.757267f ), CMathFixed_FloatToFixed( 17.816086f ),
    CMathFixed_FloatToFixed( 17.874926f ), CMathFixed_FloatToFixed( 17.933783f ),
    CMathFixed_FloatToFixed( 17.992661f ), CMathFixed_FloatToFixed( 18.051558f ),
    CMathFixed_FloatToFixed( 18.110476f ), CMathFixed_FloatToFixed( 18.169411f ),
    CMathFixed_FloatToFixed( 18.228369f ), CMathFixed_FloatToFixed( 18.287344f ),
    CMathFixed_FloatToFixed( 18.346342f ), CMathFixed_FloatToFixed( 18.405359f ),
    CMathFixed_FloatToFixed( 18.464396f ), CMathFixed_FloatToFixed( 18.523453f ),
    CMathFixed_FloatToFixed( 18.582531f ), CMathFixed_FloatToFixed( 18.641628f ),
    CMathFixed_FloatToFixed( 18.700748f ), CMathFixed_FloatToFixed( 18.759888f ),
    CMathFixed_FloatToFixed( 18.819048f ), CMathFixed_FloatToFixed( 18.878229f ),
    CMathFixed_FloatToFixed( 18.937431f ), CMathFixed_FloatToFixed( 18.996655f ),
    CMathFixed_FloatToFixed( 19.055899f ), CMathFixed_FloatToFixed( 19.115164f ),
    CMathFixed_FloatToFixed( 19.174450f ), CMathFixed_FloatToFixed( 19.233757f ),
    CMathFixed_FloatToFixed( 19.293087f ), CMathFixed_FloatToFixed( 19.352438f ),
    CMathFixed_FloatToFixed( 19.411810f ), CMathFixed_FloatToFixed( 19.471205f ),
    CMathFixed_FloatToFixed( 19.530621f ), CMathFixed_FloatToFixed( 19.590057f ),
    CMathFixed_FloatToFixed( 19.649517f ), CMathFixed_FloatToFixed( 19.709000f ),
    CMathFixed_FloatToFixed( 19.768503f ), CMathFixed_FloatToFixed( 19.828030f ),
    CMathFixed_FloatToFixed( 19.887577f ), CMathFixed_FloatToFixed( 19.947149f ),
    CMathFixed_FloatToFixed( 20.006742f ), CMathFixed_FloatToFixed( 20.066359f ),
    CMathFixed_FloatToFixed( 20.125996f ), CMathFixed_FloatToFixed( 20.185658f ),
    CMathFixed_FloatToFixed( 20.245342f ), CMathFixed_FloatToFixed( 20.305048f ),
    CMathFixed_FloatToFixed( 20.364779f ), CMathFixed_FloatToFixed( 20.424532f ),
    CMathFixed_FloatToFixed( 20.484308f ), CMathFixed_FloatToFixed( 20.544107f ),
    CMathFixed_FloatToFixed( 20.603931f ), CMathFixed_FloatToFixed( 20.663778f ),
    CMathFixed_FloatToFixed( 20.723648f ), CMathFixed_FloatToFixed( 20.783543f ),
    CMathFixed_FloatToFixed( 20.843460f ), CMathFixed_FloatToFixed( 20.903400f ),
    CMathFixed_FloatToFixed( 20.963367f ), CMathFixed_FloatToFixed( 21.023355f ),
    CMathFixed_FloatToFixed( 21.083370f ), CMathFixed_FloatToFixed( 21.143408f ),
    CMathFixed_FloatToFixed( 21.203470f ), CMathFixed_FloatToFixed( 21.263557f ),
    CMathFixed_FloatToFixed( 21.323668f ), CMathFixed_FloatToFixed( 21.383804f ),
    CMathFixed_FloatToFixed( 21.443964f ), CMathFixed_FloatToFixed( 21.504150f ),
    CMathFixed_FloatToFixed( 21.564360f ), CMathFixed_FloatToFixed( 21.624596f ),
    CMathFixed_FloatToFixed( 21.684856f ), CMathFixed_FloatToFixed( 21.745142f ),
    CMathFixed_FloatToFixed( 21.805452f ), CMathFixed_FloatToFixed( 21.865789f ),
    CMathFixed_FloatToFixed( 21.926151f ), CMathFixed_FloatToFixed( 21.986538f ),
    CMathFixed_FloatToFixed( 22.046951f ), CMathFixed_FloatToFixed( 22.107391f ),
    CMathFixed_FloatToFixed( 22.167856f ), CMathFixed_FloatToFixed( 22.228346f ),
    CMathFixed_FloatToFixed( 22.288864f ), CMathFixed_FloatToFixed( 22.349407f ),
    CMathFixed_FloatToFixed( 22.409977f ), CMathFixed_FloatToFixed( 22.470573f ),
    CMathFixed_FloatToFixed( 22.531195f ), CMathFixed_FloatToFixed( 22.591845f ),
    CMathFixed_FloatToFixed( 22.652521f ), CMathFixed_FloatToFixed( 22.713223f ),
    CMathFixed_FloatToFixed( 22.773952f ), CMathFixed_FloatToFixed( 22.834709f ),
    CMathFixed_FloatToFixed( 22.895493f ), CMathFixed_FloatToFixed( 22.956305f ),
    CMathFixed_FloatToFixed( 23.017143f ), CMathFixed_FloatToFixed( 23.078009f ),
    CMathFixed_FloatToFixed( 23.138903f ), CMathFixed_FloatToFixed( 23.199823f ),
    CMathFixed_FloatToFixed( 23.260771f ), CMathFixed_FloatToFixed( 23.321749f ),
    CMathFixed_FloatToFixed( 23.382753f ), CMathFixed_FloatToFixed( 23.443787f ),
    CMathFixed_FloatToFixed( 23.504847f ), CMathFixed_FloatToFixed( 23.565937f ),
    CMathFixed_FloatToFixed( 23.627054f ), CMathFixed_FloatToFixed( 23.688200f ),
    CMathFixed_FloatToFixed( 23.749376f ), CMathFixed_FloatToFixed( 23.810579f ),
    CMathFixed_FloatToFixed( 23.871811f ), CMathFixed_FloatToFixed( 23.933073f ),
    CMathFixed_FloatToFixed( 23.994364f ), CMathFixed_FloatToFixed( 24.055683f ),
    CMathFixed_FloatToFixed( 24.117033f ), CMathFixed_FloatToFixed( 24.178411f ),
    CMathFixed_FloatToFixed( 24.239820f ), CMathFixed_FloatToFixed( 24.301258f ),
    CMathFixed_FloatToFixed( 24.362724f ), CMathFixed_FloatToFixed( 24.424223f ),
    CMathFixed_FloatToFixed( 24.485750f ), CMathFixed_FloatToFixed( 24.547308f ),
    CMathFixed_FloatToFixed( 24.608894f ), CMathFixed_FloatToFixed( 24.670513f ),
    CMathFixed_FloatToFixed( 24.732161f ), CMathFixed_FloatToFixed( 24.793840f ),
    CMathFixed_FloatToFixed( 24.855551f ), CMathFixed_FloatToFixed( 24.917290f ),
    CMathFixed_FloatToFixed( 24.979061f ), CMathFixed_FloatToFixed( 25.040865f ),
    CMathFixed_FloatToFixed( 25.102697f ), CMathFixed_FloatToFixed( 25.164562f ),
    CMathFixed_FloatToFixed( 25.226460f ), CMathFixed_FloatToFixed( 25.288387f ),
    CMathFixed_FloatToFixed( 25.350348f ), CMathFixed_FloatToFixed( 25.412338f ),
    CMathFixed_FloatToFixed( 25.474361f ), CMathFixed_FloatToFixed( 25.536417f ),
    CMathFixed_FloatToFixed( 25.598503f ), CMathFixed_FloatToFixed( 25.660624f ),
    CMathFixed_FloatToFixed( 25.722775f ), CMathFixed_FloatToFixed( 25.784960f ),
    CMathFixed_FloatToFixed( 25.847178f ), CMathFixed_FloatToFixed( 25.909426f ),
    CMathFixed_FloatToFixed( 25.971708f ), CMathFixed_FloatToFixed( 26.034025f ),
    CMathFixed_FloatToFixed( 26.096373f ), CMathFixed_FloatToFixed( 26.158756f ),
    CMathFixed_FloatToFixed( 26.221170f ), CMathFixed_FloatToFixed( 26.283619f ),
    CMathFixed_FloatToFixed( 26.346102f ), CMathFixed_FloatToFixed( 26.408619f ),
    CMathFixed_FloatToFixed( 26.471169f ), CMathFixed_FloatToFixed( 26.533752f ),
    CMathFixed_FloatToFixed( 26.596371f ), CMathFixed_FloatToFixed( 26.659023f ),
    CMathFixed_FloatToFixed( 26.721710f ), CMathFixed_FloatToFixed( 26.784433f ),
    CMathFixed_FloatToFixed( 26.847189f ), CMathFixed_FloatToFixed( 26.909981f ),
    CMathFixed_FloatToFixed( 26.972805f ), CMathFixed_FloatToFixed( 27.035667f ),
    CMathFixed_FloatToFixed( 27.098564f ), CMathFixed_FloatToFixed( 27.161495f ),
    CMathFixed_FloatToFixed( 27.224463f ), CMathFixed_FloatToFixed( 27.287464f ),
    CMathFixed_FloatToFixed( 27.350504f ), CMathFixed_FloatToFixed( 27.413578f ),
    CMathFixed_FloatToFixed( 27.476688f ), CMathFixed_FloatToFixed( 27.539835f ),
    CMathFixed_FloatToFixed( 27.603018f ), CMathFixed_FloatToFixed( 27.666237f ),
    CMathFixed_FloatToFixed( 27.729494f ), CMathFixed_FloatToFixed( 27.792786f ),
    CMathFixed_FloatToFixed( 27.856115f ), CMathFixed_FloatToFixed( 27.919483f ),
    CMathFixed_FloatToFixed( 27.982885f ), CMathFixed_FloatToFixed( 28.046328f ),
    CMathFixed_FloatToFixed( 28.109806f ), CMathFixed_FloatToFixed( 28.173323f ),
    CMathFixed_FloatToFixed( 28.236876f ), CMathFixed_FloatToFixed( 28.300467f ),
    CMathFixed_FloatToFixed( 28.364098f ), CMathFixed_FloatToFixed( 28.427765f ),
    CMathFixed_FloatToFixed( 28.491472f ), CMathFixed_FloatToFixed( 28.555216f ),
    CMathFixed_FloatToFixed( 28.618999f ), CMathFixed_FloatToFixed( 28.682821f ),
    CMathFixed_FloatToFixed( 28.746683f ), CMathFixed_FloatToFixed( 28.810583f ),
    CMathFixed_FloatToFixed( 28.874521f ), CMathFixed_FloatToFixed( 28.938501f ),
    CMathFixed_FloatToFixed( 29.002520f ), CMathFixed_FloatToFixed( 29.066576f ),
    CMathFixed_FloatToFixed( 29.130674f ), CMathFixed_FloatToFixed( 29.194813f ),
    CMathFixed_FloatToFixed( 29.258989f ), CMathFixed_FloatToFixed( 29.323208f ),
    CMathFixed_FloatToFixed( 29.387466f ), CMathFixed_FloatToFixed( 29.451765f ),
    CMathFixed_FloatToFixed( 29.516106f ), CMathFixed_FloatToFixed( 29.580486f ),
    CMathFixed_FloatToFixed( 29.644909f ), CMathFixed_FloatToFixed( 29.709372f ),
    CMathFixed_FloatToFixed( 29.773876f ), CMathFixed_FloatToFixed( 29.838423f ),
    CMathFixed_FloatToFixed( 29.903011f ), CMathFixed_FloatToFixed( 29.967640f ),
    CMathFixed_FloatToFixed( 30.032312f ), CMathFixed_FloatToFixed( 30.097027f ),
    CMathFixed_FloatToFixed( 30.161783f ), CMathFixed_FloatToFixed( 30.226583f ),
    CMathFixed_FloatToFixed( 30.291424f ), CMathFixed_FloatToFixed( 30.356310f ),
    CMathFixed_FloatToFixed( 30.421238f ), CMathFixed_FloatToFixed( 30.486208f ),
    CMathFixed_FloatToFixed( 30.551222f ), CMathFixed_FloatToFixed( 30.616280f ),
    CMathFixed_FloatToFixed( 30.681383f ), CMathFixed_FloatToFixed( 30.746529f ),
    CMathFixed_FloatToFixed( 30.811718f ), CMathFixed_FloatToFixed( 30.876951f ),
    CMathFixed_FloatToFixed( 30.942230f ), CMathFixed_FloatToFixed( 31.007553f ),
    CMathFixed_FloatToFixed( 31.072922f ), CMathFixed_FloatToFixed( 31.138334f ),
    CMathFixed_FloatToFixed( 31.203793f ), CMathFixed_FloatToFixed( 31.269295f ),
    CMathFixed_FloatToFixed( 31.334845f ), CMathFixed_FloatToFixed( 31.400438f ),
    CMathFixed_FloatToFixed( 31.466080f ), CMathFixed_FloatToFixed( 31.531765f ),
    CMathFixed_FloatToFixed( 31.597498f ), CMathFixed_FloatToFixed( 31.663277f ),
    CMathFixed_FloatToFixed( 31.729103f ), CMathFixed_FloatToFixed( 31.794975f ),
    CMathFixed_FloatToFixed( 31.860895f ), CMathFixed_FloatToFixed( 31.926861f ),
    CMathFixed_FloatToFixed( 31.992876f ), CMathFixed_FloatToFixed( 32.058937f ),
    CMathFixed_FloatToFixed( 32.125046f ), CMathFixed_FloatToFixed( 32.191204f ),
    CMathFixed_FloatToFixed( 32.257408f ), CMathFixed_FloatToFixed( 32.323662f ),
    CMathFixed_FloatToFixed( 32.389965f ), CMathFixed_FloatToFixed( 32.456318f ),
    CMathFixed_FloatToFixed( 32.522717f ), CMathFixed_FloatToFixed( 32.589165f ),
    CMathFixed_FloatToFixed( 32.655663f ), CMathFixed_FloatToFixed( 32.722210f ),
    CMathFixed_FloatToFixed( 32.788807f ), CMathFixed_FloatToFixed( 32.855453f ),
    CMathFixed_FloatToFixed( 32.922153f ), CMathFixed_FloatToFixed( 32.988899f ),
    CMathFixed_FloatToFixed( 33.055698f ), CMathFixed_FloatToFixed( 33.122547f ),
    CMathFixed_FloatToFixed( 33.189449f ), CMathFixed_FloatToFixed( 33.256397f ),
    CMathFixed_FloatToFixed( 33.323402f ), CMathFixed_FloatToFixed( 33.390453f ),
    CMathFixed_FloatToFixed( 33.457561f ), CMathFixed_FloatToFixed( 33.524719f ),
    CMathFixed_FloatToFixed( 33.591927f ), CMathFixed_FloatToFixed( 33.659191f ),
    CMathFixed_FloatToFixed( 33.726505f ), CMathFixed_FloatToFixed( 33.793873f ),
    CMathFixed_FloatToFixed( 33.861294f ), CMathFixed_FloatToFixed( 33.928768f ),
    CMathFixed_FloatToFixed( 33.996296f ), CMathFixed_FloatToFixed( 34.063877f ),
    CMathFixed_FloatToFixed( 34.131512f ), CMathFixed_FloatToFixed( 34.199200f ),
    CMathFixed_FloatToFixed( 34.266945f ), CMathFixed_FloatToFixed( 34.334743f ),
    CMathFixed_FloatToFixed( 34.402596f ), CMathFixed_FloatToFixed( 34.470505f ),
    CMathFixed_FloatToFixed( 34.538467f ), CMathFixed_FloatToFixed( 34.606487f ),
    CMathFixed_FloatToFixed( 34.674561f ), CMathFixed_FloatToFixed( 34.742695f ),
    CMathFixed_FloatToFixed( 34.810879f ), CMathFixed_FloatToFixed( 34.879124f ),
    CMathFixed_FloatToFixed( 34.947426f ), CMathFixed_FloatToFixed( 35.015781f ),
    CMathFixed_FloatToFixed( 35.084194f ), CMathFixed_FloatToFixed( 35.152668f ),
    CMathFixed_FloatToFixed( 35.221199f ), CMathFixed_FloatToFixed( 35.289783f ),
    CMathFixed_FloatToFixed( 35.358429f ), CMathFixed_FloatToFixed( 35.427135f ),
    CMathFixed_FloatToFixed( 35.495895f ), CMathFixed_FloatToFixed( 35.564720f ),
    CMathFixed_FloatToFixed( 35.633598f ), CMathFixed_FloatToFixed( 35.702538f ),
    CMathFixed_FloatToFixed( 35.771538f ), CMathFixed_FloatToFixed( 35.840599f ),
    CMathFixed_FloatToFixed( 35.909718f ), CMathFixed_FloatToFixed( 35.978901f ),
    CMathFixed_FloatToFixed( 36.048141f ), CMathFixed_FloatToFixed( 36.117443f ),
    CMathFixed_FloatToFixed( 36.186806f ), CMathFixed_FloatToFixed( 36.256229f ),
    CMathFixed_FloatToFixed( 36.325718f ), CMathFixed_FloatToFixed( 36.395264f ),
    CMathFixed_FloatToFixed( 36.464874f ), CMathFixed_FloatToFixed( 36.534550f ),
    CMathFixed_FloatToFixed( 36.604286f ), CMathFixed_FloatToFixed( 36.674084f ),
    CMathFixed_FloatToFixed( 36.743946f ), CMathFixed_FloatToFixed( 36.813873f ),
    CMathFixed_FloatToFixed( 36.883862f ), CMathFixed_FloatToFixed( 36.953918f ),
    CMathFixed_FloatToFixed( 37.024036f ), CMathFixed_FloatToFixed( 37.094219f ),
    CMathFixed_FloatToFixed( 37.164471f ), CMathFixed_FloatToFixed( 37.234783f ),
    CMathFixed_FloatToFixed( 37.305164f ), CMathFixed_FloatToFixed( 37.375607f ),
    CMathFixed_FloatToFixed( 37.446121f ), CMathFixed_FloatToFixed( 37.516697f ),
    CMathFixed_FloatToFixed( 37.587345f ), CMathFixed_FloatToFixed( 37.658054f ),
    CMathFixed_FloatToFixed( 37.728836f ), CMathFixed_FloatToFixed( 37.799683f ),
    CMathFixed_FloatToFixed( 37.870598f ), CMathFixed_FloatToFixed( 37.941582f ),
    CMathFixed_FloatToFixed( 38.012634f ), CMathFixed_FloatToFixed( 38.083755f ),
    CMathFixed_FloatToFixed( 38.154945f ), CMathFixed_FloatToFixed( 38.226208f ),
    CMathFixed_FloatToFixed( 38.297539f ), CMathFixed_FloatToFixed( 38.368938f ),
    CMathFixed_FloatToFixed( 38.440407f ), CMathFixed_FloatToFixed( 38.511951f ),
    CMathFixed_FloatToFixed( 38.583561f ), CMathFixed_FloatToFixed( 38.655247f ),
    CMathFixed_FloatToFixed( 38.727001f ), CMathFixed_FloatToFixed( 38.798832f ),
    CMathFixed_FloatToFixed( 38.870731f ), CMathFixed_FloatToFixed( 38.942707f ),
    CMathFixed_FloatToFixed( 39.014751f ), CMathFixed_FloatToFixed( 39.086872f ),
    CMathFixed_FloatToFixed( 39.159065f ), CMathFixed_FloatToFixed( 39.231335f ),
    CMathFixed_FloatToFixed( 39.303677f ), CMathFixed_FloatToFixed( 39.376095f ),
    CMathFixed_FloatToFixed( 39.448586f ), CMathFixed_FloatToFixed( 39.521156f ),
    CMathFixed_FloatToFixed( 39.593800f ), CMathFixed_FloatToFixed( 39.666519f ),
    CMathFixed_FloatToFixed( 39.739315f ), CMathFixed_FloatToFixed( 39.812191f ),
    CMathFixed_FloatToFixed( 39.885139f ), CMathFixed_FloatToFixed( 39.958172f ),
    CMathFixed_FloatToFixed( 40.031277f ), CMathFixed_FloatToFixed( 40.104462f ),
    CMathFixed_FloatToFixed( 40.177727f ), CMathFixed_FloatToFixed( 40.251072f ),
    CMathFixed_FloatToFixed( 40.324493f ), CMathFixed_FloatToFixed( 40.397995f ),
    CMathFixed_FloatToFixed( 40.471581f ), CMathFixed_FloatToFixed( 40.545242f ),
    CMathFixed_FloatToFixed( 40.618988f ), CMathFixed_FloatToFixed( 40.692814f ),
    CMathFixed_FloatToFixed( 40.766724f ), CMathFixed_FloatToFixed( 40.840714f ),
    CMathFixed_FloatToFixed( 40.914787f ), CMathFixed_FloatToFixed( 40.988945f ),
    CMathFixed_FloatToFixed( 41.063187f ), CMathFixed_FloatToFixed( 41.137508f ),
    CMathFixed_FloatToFixed( 41.211918f ), CMathFixed_FloatToFixed( 41.286411f ),
    CMathFixed_FloatToFixed( 41.360989f ), CMathFixed_FloatToFixed( 41.435654f ),
    CMathFixed_FloatToFixed( 41.510403f ), CMathFixed_FloatToFixed( 41.585239f ),
    CMathFixed_FloatToFixed( 41.660160f ), CMathFixed_FloatToFixed( 41.735172f ),
    CMathFixed_FloatToFixed( 41.810268f ), CMathFixed_FloatToFixed( 41.885456f ),
    CMathFixed_FloatToFixed( 41.960732f ), CMathFixed_FloatToFixed( 42.036095f ),
    CMathFixed_FloatToFixed( 42.111546f ), CMathFixed_FloatToFixed( 42.187092f ),
    CMathFixed_FloatToFixed( 42.262722f ), CMathFixed_FloatToFixed( 42.338448f ),
    CMathFixed_FloatToFixed( 42.414265f ), CMathFixed_FloatToFixed( 42.490170f ),
    CMathFixed_FloatToFixed( 42.566170f ), CMathFixed_FloatToFixed( 42.642262f ),
    CMathFixed_FloatToFixed( 42.718449f ), CMathFixed_FloatToFixed( 42.794727f ),
    CMathFixed_FloatToFixed( 42.871101f ), CMathFixed_FloatToFixed( 42.947571f ),
    CMathFixed_FloatToFixed( 43.024132f ), CMathFixed_FloatToFixed( 43.100792f ),
    CMathFixed_FloatToFixed( 43.177544f ), CMathFixed_FloatToFixed( 43.254398f ),
    CMathFixed_FloatToFixed( 43.331345f ), CMathFixed_FloatToFixed( 43.408390f ),
    CMathFixed_FloatToFixed( 43.485535f ), CMathFixed_FloatToFixed( 43.562778f ),
    CMathFixed_FloatToFixed( 43.640121f ), CMathFixed_FloatToFixed( 43.717564f ),
    CMathFixed_FloatToFixed( 43.795105f ), CMathFixed_FloatToFixed( 43.872746f ),
    CMathFixed_FloatToFixed( 43.950489f ), CMathFixed_FloatToFixed( 44.028336f ),
    CMathFixed_FloatToFixed( 44.106285f ), CMathFixed_FloatToFixed( 44.184334f ),
    CMathFixed_FloatToFixed( 44.262489f ), CMathFixed_FloatToFixed( 44.340748f ),
    CMathFixed_FloatToFixed( 44.419113f ), CMathFixed_FloatToFixed( 44.497581f ),
    CMathFixed_FloatToFixed( 44.576153f ), CMathFixed_FloatToFixed( 44.654835f ),
    CMathFixed_FloatToFixed( 44.733624f ), CMathFixed_FloatToFixed( 44.812515f ),
    CMathFixed_FloatToFixed( 44.891521f ), CMathFixed_FloatToFixed( 44.970631f ),
    CMathFixed_FloatToFixed( 45.049850f ), CMathFixed_FloatToFixed( 45.129181f ),
    CMathFixed_FloatToFixed( 45.208626f ), CMathFixed_FloatToFixed( 45.288177f ),
    CMathFixed_FloatToFixed( 45.367840f ), CMathFixed_FloatToFixed( 45.447617f ),
    CMathFixed_FloatToFixed( 45.527508f ), CMathFixed_FloatToFixed( 45.607510f ),
    CMathFixed_FloatToFixed( 45.687626f ), CMathFixed_FloatToFixed( 45.767857f ),
    CMathFixed_FloatToFixed( 45.848206f ), CMathFixed_FloatToFixed( 45.928669f ),
    CMathFixed_FloatToFixed( 46.009251f ), CMathFixed_FloatToFixed( 46.089951f ),
    CMathFixed_FloatToFixed( 46.170765f ), CMathFixed_FloatToFixed( 46.251701f ),
    CMathFixed_FloatToFixed( 46.332756f ), CMathFixed_FloatToFixed( 46.413933f ),
    CMathFixed_FloatToFixed( 46.495228f ), CMathFixed_FloatToFixed( 46.576649f ),
    CMathFixed_FloatToFixed( 46.658188f ), CMathFixed_FloatToFixed( 46.739853f ),
    CMathFixed_FloatToFixed( 46.821640f ), CMathFixed_FloatToFixed( 46.903553f ),
    CMathFixed_FloatToFixed( 46.985588f ), CMathFixed_FloatToFixed( 47.067753f ),
    CMathFixed_FloatToFixed( 47.150043f ), CMathFixed_FloatToFixed( 47.232460f ),
    CMathFixed_FloatToFixed( 47.315006f ), CMathFixed_FloatToFixed( 47.397682f ),
    CMathFixed_FloatToFixed( 47.480488f ), CMathFixed_FloatToFixed( 47.563427f ),
    CMathFixed_FloatToFixed( 47.646492f ), CMathFixed_FloatToFixed( 47.729694f ),
    CMathFixed_FloatToFixed( 47.813026f ), CMathFixed_FloatToFixed( 47.896496f ),
    CMathFixed_FloatToFixed( 47.980095f ), CMathFixed_FloatToFixed( 48.063835f ),
    CMathFixed_FloatToFixed( 48.147709f ), CMathFixed_FloatToFixed( 48.231720f ),
    CMathFixed_FloatToFixed( 48.315868f ), CMathFixed_FloatToFixed( 48.400158f ),
    CMathFixed_FloatToFixed( 48.484585f ), CMathFixed_FloatToFixed( 48.569157f ),
    CMathFixed_FloatToFixed( 48.653866f ), CMathFixed_FloatToFixed( 48.738720f ),
    CMathFixed_FloatToFixed( 48.823715f ), CMathFixed_FloatToFixed( 48.908859f ),
    CMathFixed_FloatToFixed( 48.994144f ), CMathFixed_FloatToFixed( 49.079578f ),
    CMathFixed_FloatToFixed( 49.165157f ), CMathFixed_FloatToFixed( 49.250885f ),
    CMathFixed_FloatToFixed( 49.336765f ), CMathFixed_FloatToFixed( 49.422791f ),
    CMathFixed_FloatToFixed( 49.508968f ), CMathFixed_FloatToFixed( 49.595299f ),
    CMathFixed_FloatToFixed( 49.681786f ), CMathFixed_FloatToFixed( 49.768421f ),
    CMathFixed_FloatToFixed( 49.855217f ), CMathFixed_FloatToFixed( 49.942165f ),
    CMathFixed_FloatToFixed( 50.029270f ), CMathFixed_FloatToFixed( 50.116535f ),
    CMathFixed_FloatToFixed( 50.203960f ), CMathFixed_FloatToFixed( 50.291542f ),
    CMathFixed_FloatToFixed( 50.379292f ), CMathFixed_FloatToFixed( 50.467197f ),
    CMathFixed_FloatToFixed( 50.555271f ), CMathFixed_FloatToFixed( 50.643509f ),
    CMathFixed_FloatToFixed( 50.731911f ), CMathFixed_FloatToFixed( 50.820480f ),
    CMathFixed_FloatToFixed( 50.909222f ), CMathFixed_FloatToFixed( 50.998127f ),
    CMathFixed_FloatToFixed( 51.087208f ), CMathFixed_FloatToFixed( 51.176456f ),
    CMathFixed_FloatToFixed( 51.265881f ), CMathFixed_FloatToFixed( 51.355480f ),
    CMathFixed_FloatToFixed( 51.445255f ), CMathFixed_FloatToFixed( 51.535206f ),
    CMathFixed_FloatToFixed( 51.625332f ), CMathFixed_FloatToFixed( 51.715641f ),
    CMathFixed_FloatToFixed( 51.806129f ), CMathFixed_FloatToFixed( 51.896801f ),
    CMathFixed_FloatToFixed( 51.987656f ), CMathFixed_FloatToFixed( 52.078693f ),
    CMathFixed_FloatToFixed( 52.169918f ), CMathFixed_FloatToFixed( 52.261330f ),
    CMathFixed_FloatToFixed( 52.352932f ), CMathFixed_FloatToFixed( 52.444725f ),
    CMathFixed_FloatToFixed( 52.536705f ), CMathFixed_FloatToFixed( 52.628883f ),
    CMathFixed_FloatToFixed( 52.721252f ), CMathFixed_FloatToFixed( 52.813820f ),
    CMathFixed_FloatToFixed( 52.906586f ), CMathFixed_FloatToFixed( 52.999546f ),
    CMathFixed_FloatToFixed( 53.092712f ), CMathFixed_FloatToFixed( 53.186077f ),
    CMathFixed_FloatToFixed( 53.279648f ), CMathFixed_FloatToFixed( 53.373425f ),
    CMathFixed_FloatToFixed( 53.467403f ), CMathFixed_FloatToFixed( 53.561596f ),
    CMathFixed_FloatToFixed( 53.655994f ), CMathFixed_FloatToFixed( 53.750610f ),
    CMathFixed_FloatToFixed( 53.845436f ), CMathFixed_FloatToFixed( 53.940475f ),
    CMathFixed_FloatToFixed( 54.035736f ), CMathFixed_FloatToFixed( 54.131214f ),
    CMathFixed_FloatToFixed( 54.226910f ), CMathFixed_FloatToFixed( 54.322830f ),
    CMathFixed_FloatToFixed( 54.418976f ), CMathFixed_FloatToFixed( 54.515347f ),
    CMathFixed_FloatToFixed( 54.611942f ), CMathFixed_FloatToFixed( 54.708771f ),
    CMathFixed_FloatToFixed( 54.805832f ), CMathFixed_FloatToFixed( 54.903126f ),
    CMathFixed_FloatToFixed( 55.000656f ), CMathFixed_FloatToFixed( 55.098423f ),
    CMathFixed_FloatToFixed( 55.196430f ), CMathFixed_FloatToFixed( 55.294678f ),
    CMathFixed_FloatToFixed( 55.393169f ), CMathFixed_FloatToFixed( 55.491909f ),
    CMathFixed_FloatToFixed( 55.590893f ), CMathFixed_FloatToFixed( 55.690132f ),
    CMathFixed_FloatToFixed( 55.789619f ), CMathFixed_FloatToFixed( 55.889362f ),
    CMathFixed_FloatToFixed( 55.989365f ), CMathFixed_FloatToFixed( 56.089626f ),
    CMathFixed_FloatToFixed( 56.190147f ), CMathFixed_FloatToFixed( 56.290932f ),
    CMathFixed_FloatToFixed( 56.391987f ), CMathFixed_FloatToFixed( 56.493305f ),
    CMathFixed_FloatToFixed( 56.594898f ), CMathFixed_FloatToFixed( 56.696766f ),
    CMathFixed_FloatToFixed( 56.798908f ), CMathFixed_FloatToFixed( 56.901333f ),
    CMathFixed_FloatToFixed( 57.004036f ), CMathFixed_FloatToFixed( 57.107021f ),
    CMathFixed_FloatToFixed( 57.210297f ), CMathFixed_FloatToFixed( 57.313862f ),
    CMathFixed_FloatToFixed( 57.417721f ), CMathFixed_FloatToFixed( 57.521873f ),
    CMathFixed_FloatToFixed( 57.626324f ), CMathFixed_FloatToFixed( 57.731075f ),
    CMathFixed_FloatToFixed( 57.836132f ), CMathFixed_FloatToFixed( 57.941498f ),
    CMathFixed_FloatToFixed( 58.047173f ), CMathFixed_FloatToFixed( 58.153160f ),
    CMathFixed_FloatToFixed( 58.259460f ), CMathFixed_FloatToFixed( 58.366085f ),
    CMathFixed_FloatToFixed( 58.473034f ), CMathFixed_FloatToFixed( 58.580307f ),
    CMathFixed_FloatToFixed( 58.687908f ), CMathFixed_FloatToFixed( 58.795845f ),
    CMathFixed_FloatToFixed( 58.904118f ), CMathFixed_FloatToFixed( 59.012733f ),
    CMathFixed_FloatToFixed( 59.121689f ), CMathFixed_FloatToFixed( 59.230995f ),
    CMathFixed_FloatToFixed( 59.340652f ), CMathFixed_FloatToFixed( 59.450661f ),
    CMathFixed_FloatToFixed( 59.561031f ), CMathFixed_FloatToFixed( 59.671764f ),
    CMathFixed_FloatToFixed( 59.782867f ), CMathFixed_FloatToFixed( 59.894337f ),
    CMathFixed_FloatToFixed( 60.006184f ), CMathFixed_FloatToFixed( 60.118412f ),
    CMathFixed_FloatToFixed( 60.231022f ), CMathFixed_FloatToFixed( 60.344021f ),
    CMathFixed_FloatToFixed( 60.457413f ), CMathFixed_FloatToFixed( 60.571201f ),
    CMathFixed_FloatToFixed( 60.685390f ), CMathFixed_FloatToFixed( 60.799988f ),
    CMathFixed_FloatToFixed( 60.914997f ), CMathFixed_FloatToFixed( 61.030426f ),
    CMathFixed_FloatToFixed( 61.146271f ), CMathFixed_FloatToFixed( 61.262547f ),
    CMathFixed_FloatToFixed( 61.379253f ), CMathFixed_FloatToFixed( 61.496395f ),
    CMathFixed_FloatToFixed( 61.613979f ), CMathFixed_FloatToFixed( 61.732014f ),
    CMathFixed_FloatToFixed( 61.850502f ), CMathFixed_FloatToFixed( 61.969452f ),
    CMathFixed_FloatToFixed( 62.088863f ), CMathFixed_FloatToFixed( 62.208748f ),
    CMathFixed_FloatToFixed( 62.329113f ), CMathFixed_FloatToFixed( 62.449959f ),
    CMathFixed_FloatToFixed( 62.571297f ), CMathFixed_FloatToFixed( 62.693130f ),
    CMathFixed_FloatToFixed( 62.815472f ), CMathFixed_FloatToFixed( 62.938320f ),
    CMathFixed_FloatToFixed( 63.061687f ), CMathFixed_FloatToFixed( 63.185581f ),
    CMathFixed_FloatToFixed( 63.310005f ), CMathFixed_FloatToFixed( 63.434967f ),
    CMathFixed_FloatToFixed( 63.560482f ), CMathFixed_FloatToFixed( 63.686546f ),
    CMathFixed_FloatToFixed( 63.813179f ), CMathFixed_FloatToFixed( 63.940380f ),
    CMathFixed_FloatToFixed( 64.068161f ), CMathFixed_FloatToFixed( 64.196533f ),
    CMathFixed_FloatToFixed( 64.325500f ), CMathFixed_FloatToFixed( 64.455078f ),
    CMathFixed_FloatToFixed( 64.585274f ), CMathFixed_FloatToFixed( 64.716087f ),
    CMathFixed_FloatToFixed( 64.847542f ), CMathFixed_FloatToFixed( 64.979637f ),
    CMathFixed_FloatToFixed( 65.112389f ), CMathFixed_FloatToFixed( 65.245811f ),
    CMathFixed_FloatToFixed( 65.379913f ), CMathFixed_FloatToFixed( 65.514694f ),
    CMathFixed_FloatToFixed( 65.650185f ), CMathFixed_FloatToFixed( 65.786377f ),
    CMathFixed_FloatToFixed( 65.923302f ), CMathFixed_FloatToFixed( 66.060959f ),
    CMathFixed_FloatToFixed( 66.199364f ), CMathFixed_FloatToFixed( 66.338531f ),
    CMathFixed_FloatToFixed( 66.478477f ), CMathFixed_FloatToFixed( 66.619209f ),
    CMathFixed_FloatToFixed( 66.760750f ), CMathFixed_FloatToFixed( 66.903107f ),
    CMathFixed_FloatToFixed( 67.046295f ), CMathFixed_FloatToFixed( 67.190338f ),
    CMathFixed_FloatToFixed( 67.335251f ), CMathFixed_FloatToFixed( 67.481041f ),
    CMathFixed_FloatToFixed( 67.627731f ), CMathFixed_FloatToFixed( 67.775337f ),
    CMathFixed_FloatToFixed( 67.923882f ), CMathFixed_FloatToFixed( 68.073387f ),
    CMathFixed_FloatToFixed( 68.223862f ), CMathFixed_FloatToFixed( 68.375336f ),
    CMathFixed_FloatToFixed( 68.527824f ), CMathFixed_FloatToFixed( 68.681351f ),
    CMathFixed_FloatToFixed( 68.835945f ), CMathFixed_FloatToFixed( 68.991615f ),
    CMathFixed_FloatToFixed( 69.148399f ), CMathFixed_FloatToFixed( 69.306320f ),
    CMathFixed_FloatToFixed( 69.465401f ), CMathFixed_FloatToFixed( 69.625671f ),
    CMathFixed_FloatToFixed( 69.787155f ), CMathFixed_FloatToFixed( 69.949883f ),
    CMathFixed_FloatToFixed( 70.113892f ), CMathFixed_FloatToFixed( 70.279205f ),
    CMathFixed_FloatToFixed( 70.445862f ), CMathFixed_FloatToFixed( 70.613892f ),
    CMathFixed_FloatToFixed( 70.783333f ), CMathFixed_FloatToFixed( 70.954231f ),
    CMathFixed_FloatToFixed( 71.126610f ), CMathFixed_FloatToFixed( 71.300529f ),
    CMathFixed_FloatToFixed( 71.476013f ), CMathFixed_FloatToFixed( 71.653122f ),
    CMathFixed_FloatToFixed( 71.831894f ), CMathFixed_FloatToFixed( 72.012383f ),
    CMathFixed_FloatToFixed( 72.194641f ), CMathFixed_FloatToFixed( 72.378723f ),
    CMathFixed_FloatToFixed( 72.564690f ), CMathFixed_FloatToFixed( 72.752594f ),
    CMathFixed_FloatToFixed( 72.942505f ), CMathFixed_FloatToFixed( 73.134483f ),
    CMathFixed_FloatToFixed( 73.328613f ), CMathFixed_FloatToFixed( 73.524971f ),
    CMathFixed_FloatToFixed( 73.723625f ), CMathFixed_FloatToFixed( 73.924667f ),
    CMathFixed_FloatToFixed( 74.128189f ), CMathFixed_FloatToFixed( 74.334282f ),
    CMathFixed_FloatToFixed( 74.543053f ), CMathFixed_FloatToFixed( 74.754616f ),
    CMathFixed_FloatToFixed( 74.969086f ), CMathFixed_FloatToFixed( 75.186584f ),
    CMathFixed_FloatToFixed( 75.407249f ), CMathFixed_FloatToFixed( 75.631233f ),
    CMathFixed_FloatToFixed( 75.858688f ), CMathFixed_FloatToFixed( 76.089783f ),
    CMathFixed_FloatToFixed( 76.324699f ), CMathFixed_FloatToFixed( 76.563644f ),
    CMathFixed_FloatToFixed( 76.806839f ), CMathFixed_FloatToFixed( 77.054520f ),
    CMathFixed_FloatToFixed( 77.306946f ), CMathFixed_FloatToFixed( 77.564415f ),
    CMathFixed_FloatToFixed( 77.827232f ), CMathFixed_FloatToFixed( 78.095764f ),
    CMathFixed_FloatToFixed( 78.370407f ), CMathFixed_FloatToFixed( 78.651596f ),
    CMathFixed_FloatToFixed( 78.939842f ), CMathFixed_FloatToFixed( 79.235695f ),
    CMathFixed_FloatToFixed( 79.539818f ), CMathFixed_FloatToFixed( 79.852951f ),
    CMathFixed_FloatToFixed( 80.175949f ), CMathFixed_FloatToFixed( 80.509819f ),
    CMathFixed_FloatToFixed( 80.855759f ), CMathFixed_FloatToFixed( 81.215187f ),
    CMathFixed_FloatToFixed( 81.589844f ), CMathFixed_FloatToFixed( 81.981850f ),
    CMathFixed_FloatToFixed( 82.393898f ), CMathFixed_FloatToFixed( 82.829437f ),
    CMathFixed_FloatToFixed( 83.293053f ), CMathFixed_FloatToFixed( 83.791008f ),
    CMathFixed_FloatToFixed( 84.332367f ), CMathFixed_FloatToFixed( 84.931015f ),
    CMathFixed_FloatToFixed( 85.610321f ), CMathFixed_FloatToFixed( 86.415863f ),
    CMathFixed_FloatToFixed( 87.465256f )
};

#endif


fixed CMathFixed::ASin( fixed a )
{
	fixed val = 0, idx = 0;
	boolean flip = FALSE;

	a = ClampToUnit( a );

	if ( a < 0 )
	{
		a *= -1;
		flip = TRUE;
	}

	if ( a == One )
	{
		val = Degrees_90; // fixed by aNdy, for ASinLUT[] didn't include 90 degree
	}
	else
	{
		idx = ( a * (ASin_NumOfEntriesInLUT - 1)) >> CMathFixed_NumberOfFractionalBits;
		val = ASinLUT[idx];
	}	

	if ( flip )
		val *= -1;

	return val; 	
}


fixed CMathFixed::ATan( fixed h )
{ // ATTENTION ! IT'S BROKEN! if h=0, return value will be 5198
	return ATan2(h, CMathFixed_One);
}


fixed CMathFixed::ATan2( fixed y, fixed x)
{
    if (!x && !y) return 0;

    // overflow prevention may be needed in the future; here is one way of doing it:
    //while (CMathFixed::Abs(x) > 32767 || CMathFixed::Abs(y) > 32767) 
    //       x>>= 1, y>>= 1;
    fixed d=   Sqrt(CMathFixed::Mul(x,x) + CMathFixed::Mul(y,y));
    fixed ret= ACos(CMathFixed::Div(x,d));

    if (y < 0 && ret != 0) ret= CMathFixed::Degrees_360 - ret;
    if (ret > CMathFixed::Degrees_180) ret-=CMathFixed::Degrees_360;
    return ret;
}



fixed CMathFixed::ATan2i(int32 y, int32 x)
{
    if (!x && !y) return 0;

    int32 d=   CMath::Sqrt(x*x + y*y);
    fixed ret= ACos(CMathFixed_Int32ToFixed(x)/d);

    if (y < 0 && ret != 0) ret= CMathFixed::Degrees_360 - ret;
    if (ret > CMathFixed::Degrees_180) ret-=CMathFixed::Degrees_360;
    return ret;
}


#if( CMathFixed_NumberOfFractionalBits < 9 )
 
#define Sin_NumOfEntriesInLUT 127
static const fixed SinLUT[] = {
    CMathFixed_FloatToFixed( 0.000000f ), CMathFixed_FloatToFixed( 0.012368f ),
    CMathFixed_FloatToFixed( 0.024734f ), CMathFixed_FloatToFixed( 0.037097f ),
    CMathFixed_FloatToFixed( 0.049454f ), CMathFixed_FloatToFixed( 0.061803f ),
    CMathFixed_FloatToFixed( 0.074143f ), CMathFixed_FloatToFixed( 0.086471f ),
    CMathFixed_FloatToFixed( 0.098786f ), CMathFixed_FloatToFixed( 0.111087f ),
    CMathFixed_FloatToFixed( 0.123370f ), CMathFixed_FloatToFixed( 0.135634f ),
    CMathFixed_FloatToFixed( 0.147877f ), CMathFixed_FloatToFixed( 0.160098f ),
    CMathFixed_FloatToFixed( 0.172295f ), CMathFixed_FloatToFixed( 0.184465f ),
    CMathFixed_FloatToFixed( 0.196606f ), CMathFixed_FloatToFixed( 0.208718f ),
    CMathFixed_FloatToFixed( 0.220798f ), CMathFixed_FloatToFixed( 0.232844f ),
    CMathFixed_FloatToFixed( 0.244854f ), CMathFixed_FloatToFixed( 0.256827f ),
    CMathFixed_FloatToFixed( 0.268761f ), CMathFixed_FloatToFixed( 0.280653f ),
    CMathFixed_FloatToFixed( 0.292503f ), CMathFixed_FloatToFixed( 0.304308f ),
    CMathFixed_FloatToFixed( 0.316066f ), CMathFixed_FloatToFixed( 0.327776f ),
    CMathFixed_FloatToFixed( 0.339436f ), CMathFixed_FloatToFixed( 0.351044f ),
    CMathFixed_FloatToFixed( 0.362598f ), CMathFixed_FloatToFixed( 0.374097f ),
    CMathFixed_FloatToFixed( 0.385538f ), CMathFixed_FloatToFixed( 0.396921f ),
    CMathFixed_FloatToFixed( 0.408243f ), CMathFixed_FloatToFixed( 0.419502f ),
    CMathFixed_FloatToFixed( 0.430697f ), CMathFixed_FloatToFixed( 0.441826f ),
    CMathFixed_FloatToFixed( 0.452888f ), CMathFixed_FloatToFixed( 0.463880f ),
    CMathFixed_FloatToFixed( 0.474802f ), CMathFixed_FloatToFixed( 0.485651f ),
    CMathFixed_FloatToFixed( 0.496425f ), CMathFixed_FloatToFixed( 0.507124f ),
    CMathFixed_FloatToFixed( 0.517745f ), CMathFixed_FloatToFixed( 0.528287f ),
    CMathFixed_FloatToFixed( 0.538748f ), CMathFixed_FloatToFixed( 0.549126f ),
    CMathFixed_FloatToFixed( 0.559421f ), CMathFixed_FloatToFixed( 0.569630f ),
    CMathFixed_FloatToFixed( 0.579752f ), CMathFixed_FloatToFixed( 0.589785f ),
    CMathFixed_FloatToFixed( 0.599728f ), CMathFixed_FloatToFixed( 0.609579f ),
    CMathFixed_FloatToFixed( 0.619337f ), CMathFixed_FloatToFixed( 0.629000f ),
    CMathFixed_FloatToFixed( 0.638567f ), CMathFixed_FloatToFixed( 0.648036f ),
    CMathFixed_FloatToFixed( 0.657407f ), CMathFixed_FloatToFixed( 0.666676f ),
    CMathFixed_FloatToFixed( 0.675844f ), CMathFixed_FloatToFixed( 0.684908f ),
    CMathFixed_FloatToFixed( 0.693867f ), CMathFixed_FloatToFixed( 0.702721f ),
    CMathFixed_FloatToFixed( 0.711466f ), CMathFixed_FloatToFixed( 0.720103f ),
    CMathFixed_FloatToFixed( 0.728630f ), CMathFixed_FloatToFixed( 0.737046f ),
    CMathFixed_FloatToFixed( 0.745348f ), CMathFixed_FloatToFixed( 0.753537f ),
    CMathFixed_FloatToFixed( 0.761610f ), CMathFixed_FloatToFixed( 0.769567f ),
    CMathFixed_FloatToFixed( 0.777406f ), CMathFixed_FloatToFixed( 0.785126f ),
    CMathFixed_FloatToFixed( 0.792726f ), CMathFixed_FloatToFixed( 0.800205f ),
    CMathFixed_FloatToFixed( 0.807561f ), CMathFixed_FloatToFixed( 0.814794f ),
    CMathFixed_FloatToFixed( 0.821902f ), CMathFixed_FloatToFixed( 0.828884f ),
    CMathFixed_FloatToFixed( 0.835740f ), CMathFixed_FloatToFixed( 0.842468f ),
    CMathFixed_FloatToFixed( 0.849067f ), CMathFixed_FloatToFixed( 0.855536f ),
    CMathFixed_FloatToFixed( 0.861874f ), CMathFixed_FloatToFixed( 0.868080f ),
    CMathFixed_FloatToFixed( 0.874153f ), CMathFixed_FloatToFixed( 0.880093f ),
    CMathFixed_FloatToFixed( 0.885898f ), CMathFixed_FloatToFixed( 0.891568f ),
    CMathFixed_FloatToFixed( 0.897101f ), CMathFixed_FloatToFixed( 0.902497f ),
    CMathFixed_FloatToFixed( 0.907755f ), CMathFixed_FloatToFixed( 0.912874f ),
    CMathFixed_FloatToFixed( 0.917853f ), CMathFixed_FloatToFixed( 0.922692f ),
    CMathFixed_FloatToFixed( 0.927390f ), CMathFixed_FloatToFixed( 0.931946f ),
    CMathFixed_FloatToFixed( 0.936359f ), CMathFixed_FloatToFixed( 0.940629f ),
    CMathFixed_FloatToFixed( 0.944755f ), CMathFixed_FloatToFixed( 0.948737f ),
    CMathFixed_FloatToFixed( 0.952574f ), CMathFixed_FloatToFixed( 0.956265f ),
    CMathFixed_FloatToFixed( 0.959809f ), CMathFixed_FloatToFixed( 0.963207f ),
    CMathFixed_FloatToFixed( 0.966457f ), CMathFixed_FloatToFixed( 0.969560f ),
    CMathFixed_FloatToFixed( 0.972514f ), CMathFixed_FloatToFixed( 0.975320f ),
    CMathFixed_FloatToFixed( 0.977976f ), CMathFixed_FloatToFixed( 0.980482f ),
    CMathFixed_FloatToFixed( 0.982839f ), CMathFixed_FloatToFixed( 0.985045f ),
    CMathFixed_FloatToFixed( 0.987101f ), CMathFixed_FloatToFixed( 0.989006f ),
    CMathFixed_FloatToFixed( 0.990759f ), CMathFixed_FloatToFixed( 0.992361f ),
    CMathFixed_FloatToFixed( 0.993811f ), CMathFixed_FloatToFixed( 0.995109f ),
    CMathFixed_FloatToFixed( 0.996254f ), CMathFixed_FloatToFixed( 0.997248f ),
    CMathFixed_FloatToFixed( 0.998088f ), CMathFixed_FloatToFixed( 0.998776f ),
    CMathFixed_FloatToFixed( 0.999312f ), CMathFixed_FloatToFixed( 0.999694f ),
    CMathFixed_FloatToFixed( 0.999924f )
};
 
#elif( CMathFixed_NumberOfFractionalBits < 12 )

#define Sin_NumOfEntriesInLUT 255
static const fixed SinLUT[] = {
    CMathFixed_FloatToFixed( 0.000000f ), CMathFixed_FloatToFixed( 0.006160f ),
    CMathFixed_FloatToFixed( 0.012320f ), CMathFixed_FloatToFixed( 0.018479f ),
    CMathFixed_FloatToFixed( 0.024637f ), CMathFixed_FloatToFixed( 0.030795f ),
    CMathFixed_FloatToFixed( 0.036952f ), CMathFixed_FloatToFixed( 0.043107f ),
    CMathFixed_FloatToFixed( 0.049260f ), CMathFixed_FloatToFixed( 0.055411f ),
    CMathFixed_FloatToFixed( 0.061561f ), CMathFixed_FloatToFixed( 0.067708f ),
    CMathFixed_FloatToFixed( 0.073853f ), CMathFixed_FloatToFixed( 0.079994f ),
    CMathFixed_FloatToFixed( 0.086133f ), CMathFixed_FloatToFixed( 0.092268f ),
    CMathFixed_FloatToFixed( 0.098400f ), CMathFixed_FloatToFixed( 0.104528f ),
    CMathFixed_FloatToFixed( 0.110653f ), CMathFixed_FloatToFixed( 0.116773f ),
    CMathFixed_FloatToFixed( 0.122888f ), CMathFixed_FloatToFixed( 0.128999f ),
    CMathFixed_FloatToFixed( 0.135105f ), CMathFixed_FloatToFixed( 0.141206f ),
    CMathFixed_FloatToFixed( 0.147302f ), CMathFixed_FloatToFixed( 0.153392f ),
    CMathFixed_FloatToFixed( 0.159476f ), CMathFixed_FloatToFixed( 0.165554f ),
    CMathFixed_FloatToFixed( 0.171626f ), CMathFixed_FloatToFixed( 0.177691f ),
    CMathFixed_FloatToFixed( 0.183750f ), CMathFixed_FloatToFixed( 0.189801f ),
    CMathFixed_FloatToFixed( 0.195846f ), CMathFixed_FloatToFixed( 0.201882f ),
    CMathFixed_FloatToFixed( 0.207912f ), CMathFixed_FloatToFixed( 0.213933f ),
    CMathFixed_FloatToFixed( 0.219946f ), CMathFixed_FloatToFixed( 0.225951f ),
    CMathFixed_FloatToFixed( 0.231948f ), CMathFixed_FloatToFixed( 0.237935f ),
    CMathFixed_FloatToFixed( 0.243914f ), CMathFixed_FloatToFixed( 0.249883f ),
    CMathFixed_FloatToFixed( 0.255843f ), CMathFixed_FloatToFixed( 0.261793f ),
    CMathFixed_FloatToFixed( 0.267733f ), CMathFixed_FloatToFixed( 0.273663f ),
    CMathFixed_FloatToFixed( 0.279583f ), CMathFixed_FloatToFixed( 0.285492f ),
    CMathFixed_FloatToFixed( 0.291390f ), CMathFixed_FloatToFixed( 0.297277f ),
    CMathFixed_FloatToFixed( 0.303153f ), CMathFixed_FloatToFixed( 0.309017f ),
    CMathFixed_FloatToFixed( 0.314870f ), CMathFixed_FloatToFixed( 0.320710f ),
    CMathFixed_FloatToFixed( 0.326539f ), CMathFixed_FloatToFixed( 0.332355f ),
    CMathFixed_FloatToFixed( 0.338158f ), CMathFixed_FloatToFixed( 0.343949f ),
    CMathFixed_FloatToFixed( 0.349727f ), CMathFixed_FloatToFixed( 0.355491f ),
    CMathFixed_FloatToFixed( 0.361242f ), CMathFixed_FloatToFixed( 0.366979f ),
    CMathFixed_FloatToFixed( 0.372702f ), CMathFixed_FloatToFixed( 0.378411f ),
    CMathFixed_FloatToFixed( 0.384106f ), CMathFixed_FloatToFixed( 0.389786f ),
    CMathFixed_FloatToFixed( 0.395451f ), CMathFixed_FloatToFixed( 0.401102f ),
    CMathFixed_FloatToFixed( 0.406737f ), CMathFixed_FloatToFixed( 0.412357f ),
    CMathFixed_FloatToFixed( 0.417961f ), CMathFixed_FloatToFixed( 0.423549f ),
    CMathFixed_FloatToFixed( 0.429121f ), CMathFixed_FloatToFixed( 0.434677f ),
    CMathFixed_FloatToFixed( 0.440216f ), CMathFixed_FloatToFixed( 0.445739f ),
    CMathFixed_FloatToFixed( 0.451244f ), CMathFixed_FloatToFixed( 0.456733f ),
    CMathFixed_FloatToFixed( 0.462204f ), CMathFixed_FloatToFixed( 0.467658f ),
    CMathFixed_FloatToFixed( 0.473094f ), CMathFixed_FloatToFixed( 0.478512f ),
    CMathFixed_FloatToFixed( 0.483912f ), CMathFixed_FloatToFixed( 0.489293f ),
    CMathFixed_FloatToFixed( 0.494656f ), CMathFixed_FloatToFixed( 0.500000f ),
    CMathFixed_FloatToFixed( 0.505325f ), CMathFixed_FloatToFixed( 0.510631f ),
    CMathFixed_FloatToFixed( 0.515918f ), CMathFixed_FloatToFixed( 0.521185f ),
    CMathFixed_FloatToFixed( 0.526432f ), CMathFixed_FloatToFixed( 0.531660f ),
    CMathFixed_FloatToFixed( 0.536867f ), CMathFixed_FloatToFixed( 0.542053f ),
    CMathFixed_FloatToFixed( 0.547220f ), CMathFixed_FloatToFixed( 0.552365f ),
    CMathFixed_FloatToFixed( 0.557489f ), CMathFixed_FloatToFixed( 0.562593f ),
    CMathFixed_FloatToFixed( 0.567675f ), CMathFixed_FloatToFixed( 0.572735f ),
    CMathFixed_FloatToFixed( 0.577774f ), CMathFixed_FloatToFixed( 0.582790f ),
    CMathFixed_FloatToFixed( 0.587785f ), CMathFixed_FloatToFixed( 0.592757f ),
    CMathFixed_FloatToFixed( 0.597707f ), CMathFixed_FloatToFixed( 0.602634f ),
    CMathFixed_FloatToFixed( 0.607539f ), CMathFixed_FloatToFixed( 0.612420f ),
    CMathFixed_FloatToFixed( 0.617278f ), CMathFixed_FloatToFixed( 0.622113f ),
    CMathFixed_FloatToFixed( 0.626924f ), CMathFixed_FloatToFixed( 0.631711f ),
    CMathFixed_FloatToFixed( 0.636474f ), CMathFixed_FloatToFixed( 0.641213f ),
    CMathFixed_FloatToFixed( 0.645928f ), CMathFixed_FloatToFixed( 0.650618f ),
    CMathFixed_FloatToFixed( 0.655283f ), CMathFixed_FloatToFixed( 0.659924f ),
    CMathFixed_FloatToFixed( 0.664540f ), CMathFixed_FloatToFixed( 0.669130f ),
    CMathFixed_FloatToFixed( 0.673695f ), CMathFixed_FloatToFixed( 0.678235f ),
    CMathFixed_FloatToFixed( 0.682748f ), CMathFixed_FloatToFixed( 0.687236f ),
    CMathFixed_FloatToFixed( 0.691698f ), CMathFixed_FloatToFixed( 0.696133f ),
    CMathFixed_FloatToFixed( 0.700543f ), CMathFixed_FloatToFixed( 0.704925f ),
    CMathFixed_FloatToFixed( 0.709281f ), CMathFixed_FloatToFixed( 0.713610f ),
    CMathFixed_FloatToFixed( 0.717911f ), CMathFixed_FloatToFixed( 0.722186f ),
    CMathFixed_FloatToFixed( 0.726433f ), CMathFixed_FloatToFixed( 0.730653f ),
    CMathFixed_FloatToFixed( 0.734844f ), CMathFixed_FloatToFixed( 0.739008f ),
    CMathFixed_FloatToFixed( 0.743144f ), CMathFixed_FloatToFixed( 0.747252f ),
    CMathFixed_FloatToFixed( 0.751331f ), CMathFixed_FloatToFixed( 0.755382f ),
    CMathFixed_FloatToFixed( 0.759404f ), CMathFixed_FloatToFixed( 0.763398f ),
    CMathFixed_FloatToFixed( 0.767362f ), CMathFixed_FloatToFixed( 0.771297f ),
    CMathFixed_FloatToFixed( 0.775203f ), CMathFixed_FloatToFixed( 0.779080f ),
    CMathFixed_FloatToFixed( 0.782927f ), CMathFixed_FloatToFixed( 0.786744f ),
    CMathFixed_FloatToFixed( 0.790532f ), CMathFixed_FloatToFixed( 0.794289f ),
    CMathFixed_FloatToFixed( 0.798016f ), CMathFixed_FloatToFixed( 0.801713f ),
    CMathFixed_FloatToFixed( 0.805380f ), CMathFixed_FloatToFixed( 0.809016f ),
    CMathFixed_FloatToFixed( 0.812622f ), CMathFixed_FloatToFixed( 0.816196f ),
    CMathFixed_FloatToFixed( 0.819740f ), CMathFixed_FloatToFixed( 0.823252f ),
    CMathFixed_FloatToFixed( 0.826733f ), CMathFixed_FloatToFixed( 0.830183f ),
    CMathFixed_FloatToFixed( 0.833602f ), CMathFixed_FloatToFixed( 0.836988f ),
    CMathFixed_FloatToFixed( 0.840343f ), CMathFixed_FloatToFixed( 0.843666f ),
    CMathFixed_FloatToFixed( 0.846957f ), CMathFixed_FloatToFixed( 0.850216f ),
    CMathFixed_FloatToFixed( 0.853443f ), CMathFixed_FloatToFixed( 0.856637f ),
    CMathFixed_FloatToFixed( 0.859799f ), CMathFixed_FloatToFixed( 0.862928f ),
    CMathFixed_FloatToFixed( 0.866025f ), CMathFixed_FloatToFixed( 0.869088f ),
    CMathFixed_FloatToFixed( 0.872119f ), CMathFixed_FloatToFixed( 0.875116f ),
    CMathFixed_FloatToFixed( 0.878081f ), CMathFixed_FloatToFixed( 0.881012f ),
    CMathFixed_FloatToFixed( 0.883909f ), CMathFixed_FloatToFixed( 0.886773f ),
    CMathFixed_FloatToFixed( 0.889603f ), CMathFixed_FloatToFixed( 0.892400f ),
    CMathFixed_FloatToFixed( 0.895163f ), CMathFixed_FloatToFixed( 0.897892f ),
    CMathFixed_FloatToFixed( 0.900586f ), CMathFixed_FloatToFixed( 0.903247f ),
    CMathFixed_FloatToFixed( 0.905873f ), CMathFixed_FloatToFixed( 0.908465f ),
    CMathFixed_FloatToFixed( 0.911022f ), CMathFixed_FloatToFixed( 0.913545f ),
    CMathFixed_FloatToFixed( 0.916033f ), CMathFixed_FloatToFixed( 0.918487f ),
    CMathFixed_FloatToFixed( 0.920905f ), CMathFixed_FloatToFixed( 0.923289f ),
    CMathFixed_FloatToFixed( 0.925637f ), CMathFixed_FloatToFixed( 0.927951f ),
    CMathFixed_FloatToFixed( 0.930229f ), CMathFixed_FloatToFixed( 0.932472f ),
    CMathFixed_FloatToFixed( 0.934680f ), CMathFixed_FloatToFixed( 0.936852f ),
    CMathFixed_FloatToFixed( 0.938988f ), CMathFixed_FloatToFixed( 0.941089f ),
    CMathFixed_FloatToFixed( 0.943154f ), CMathFixed_FloatToFixed( 0.945184f ),
    CMathFixed_FloatToFixed( 0.947177f ), CMathFixed_FloatToFixed( 0.949135f ),
    CMathFixed_FloatToFixed( 0.951056f ), CMathFixed_FloatToFixed( 0.952942f ),
    CMathFixed_FloatToFixed( 0.954791f ), CMathFixed_FloatToFixed( 0.956604f ),
    CMathFixed_FloatToFixed( 0.958381f ), CMathFixed_FloatToFixed( 0.960122f ),
    CMathFixed_FloatToFixed( 0.961826f ), CMathFixed_FloatToFixed( 0.963493f ),
    CMathFixed_FloatToFixed( 0.965124f ), CMathFixed_FloatToFixed( 0.966718f ),
    CMathFixed_FloatToFixed( 0.968276f ), CMathFixed_FloatToFixed( 0.969797f ),
    CMathFixed_FloatToFixed( 0.971281f ), CMathFixed_FloatToFixed( 0.972728f ),
    CMathFixed_FloatToFixed( 0.974139f ), CMathFixed_FloatToFixed( 0.975512f ),
    CMathFixed_FloatToFixed( 0.976848f ), CMathFixed_FloatToFixed( 0.978148f ),
    CMathFixed_FloatToFixed( 0.979410f ), CMathFixed_FloatToFixed( 0.980635f ),
    CMathFixed_FloatToFixed( 0.981823f ), CMathFixed_FloatToFixed( 0.982973f ),
    CMathFixed_FloatToFixed( 0.984086f ), CMathFixed_FloatToFixed( 0.985162f ),
    CMathFixed_FloatToFixed( 0.986201f ), CMathFixed_FloatToFixed( 0.987202f ),
    CMathFixed_FloatToFixed( 0.988166f ), CMathFixed_FloatToFixed( 0.989092f ),
    CMathFixed_FloatToFixed( 0.989980f ), CMathFixed_FloatToFixed( 0.990831f ),
    CMathFixed_FloatToFixed( 0.991645f ), CMathFixed_FloatToFixed( 0.992421f ),
    CMathFixed_FloatToFixed( 0.993159f ), CMathFixed_FloatToFixed( 0.993859f ),
    CMathFixed_FloatToFixed( 0.994522f ), CMathFixed_FloatToFixed( 0.995147f ),
    CMathFixed_FloatToFixed( 0.995734f ), CMathFixed_FloatToFixed( 0.996284f ),
    CMathFixed_FloatToFixed( 0.996795f ), CMathFixed_FloatToFixed( 0.997269f ),
    CMathFixed_FloatToFixed( 0.997705f ), CMathFixed_FloatToFixed( 0.998103f ),
    CMathFixed_FloatToFixed( 0.998464f ), CMathFixed_FloatToFixed( 0.998786f ),
    CMathFixed_FloatToFixed( 0.999071f ), CMathFixed_FloatToFixed( 0.999317f ),
    CMathFixed_FloatToFixed( 0.999526f ), CMathFixed_FloatToFixed( 0.999696f ),
    CMathFixed_FloatToFixed( 0.999829f ), CMathFixed_FloatToFixed( 0.999924f ),
    CMathFixed_FloatToFixed( 0.999981f )
};

#else

#define Sin_NumOfEntriesInLUT 1023
static const fixed SinLUT[] = {
    CMathFixed_FloatToFixed( 0.000000f ), CMathFixed_FloatToFixed( 0.001535f ),
    CMathFixed_FloatToFixed( 0.003071f ), CMathFixed_FloatToFixed( 0.004606f ),
    CMathFixed_FloatToFixed( 0.006142f ), CMathFixed_FloatToFixed( 0.007677f ),
    CMathFixed_FloatToFixed( 0.009213f ), CMathFixed_FloatToFixed( 0.010748f ),
    CMathFixed_FloatToFixed( 0.012284f ), CMathFixed_FloatToFixed( 0.013819f ),
    CMathFixed_FloatToFixed( 0.015354f ), CMathFixed_FloatToFixed( 0.016889f ),
    CMathFixed_FloatToFixed( 0.018425f ), CMathFixed_FloatToFixed( 0.019960f ),
    CMathFixed_FloatToFixed( 0.021495f ), CMathFixed_FloatToFixed( 0.023030f ),
    CMathFixed_FloatToFixed( 0.024565f ), CMathFixed_FloatToFixed( 0.026100f ),
    CMathFixed_FloatToFixed( 0.027635f ), CMathFixed_FloatToFixed( 0.029170f ),
    CMathFixed_FloatToFixed( 0.030705f ), CMathFixed_FloatToFixed( 0.032240f ),
    CMathFixed_FloatToFixed( 0.033774f ), CMathFixed_FloatToFixed( 0.035309f ),
    CMathFixed_FloatToFixed( 0.036843f ), CMathFixed_FloatToFixed( 0.038378f ),
    CMathFixed_FloatToFixed( 0.039912f ), CMathFixed_FloatToFixed( 0.041446f ),
    CMathFixed_FloatToFixed( 0.042980f ), CMathFixed_FloatToFixed( 0.044514f ),
    CMathFixed_FloatToFixed( 0.046048f ), CMathFixed_FloatToFixed( 0.047582f ),
    CMathFixed_FloatToFixed( 0.049116f ), CMathFixed_FloatToFixed( 0.050649f ),
    CMathFixed_FloatToFixed( 0.052183f ), CMathFixed_FloatToFixed( 0.053716f ),
    CMathFixed_FloatToFixed( 0.055249f ), CMathFixed_FloatToFixed( 0.056782f ),
    CMathFixed_FloatToFixed( 0.058315f ), CMathFixed_FloatToFixed( 0.059848f ),
    CMathFixed_FloatToFixed( 0.061381f ), CMathFixed_FloatToFixed( 0.062913f ),
    CMathFixed_FloatToFixed( 0.064445f ), CMathFixed_FloatToFixed( 0.065978f ),
    CMathFixed_FloatToFixed( 0.067510f ), CMathFixed_FloatToFixed( 0.069042f ),
    CMathFixed_FloatToFixed( 0.070573f ), CMathFixed_FloatToFixed( 0.072105f ),
    CMathFixed_FloatToFixed( 0.073636f ), CMathFixed_FloatToFixed( 0.075168f ),
    CMathFixed_FloatToFixed( 0.076699f ), CMathFixed_FloatToFixed( 0.078229f ),
    CMathFixed_FloatToFixed( 0.079760f ), CMathFixed_FloatToFixed( 0.081291f ),
    CMathFixed_FloatToFixed( 0.082821f ), CMathFixed_FloatToFixed( 0.084351f ),
    CMathFixed_FloatToFixed( 0.085881f ), CMathFixed_FloatToFixed( 0.087411f ),
    CMathFixed_FloatToFixed( 0.088940f ), CMathFixed_FloatToFixed( 0.090469f ),
    CMathFixed_FloatToFixed( 0.091999f ), CMathFixed_FloatToFixed( 0.093527f ),
    CMathFixed_FloatToFixed( 0.095056f ), CMathFixed_FloatToFixed( 0.096584f ),
    CMathFixed_FloatToFixed( 0.098113f ), CMathFixed_FloatToFixed( 0.099641f ),
    CMathFixed_FloatToFixed( 0.101168f ), CMathFixed_FloatToFixed( 0.102696f ),
    CMathFixed_FloatToFixed( 0.104223f ), CMathFixed_FloatToFixed( 0.105750f ),
    CMathFixed_FloatToFixed( 0.107277f ), CMathFixed_FloatToFixed( 0.108803f ),
    CMathFixed_FloatToFixed( 0.110330f ), CMathFixed_FloatToFixed( 0.111856f ),
    CMathFixed_FloatToFixed( 0.113381f ), CMathFixed_FloatToFixed( 0.114907f ),
    CMathFixed_FloatToFixed( 0.116432f ), CMathFixed_FloatToFixed( 0.117957f ),
    CMathFixed_FloatToFixed( 0.119481f ), CMathFixed_FloatToFixed( 0.121006f ),
    CMathFixed_FloatToFixed( 0.122530f ), CMathFixed_FloatToFixed( 0.124054f ),
    CMathFixed_FloatToFixed( 0.125577f ), CMathFixed_FloatToFixed( 0.127100f ),
    CMathFixed_FloatToFixed( 0.128623f ), CMathFixed_FloatToFixed( 0.130146f ),
    CMathFixed_FloatToFixed( 0.131668f ), CMathFixed_FloatToFixed( 0.133190f ),
    CMathFixed_FloatToFixed( 0.134712f ), CMathFixed_FloatToFixed( 0.136233f ),
    CMathFixed_FloatToFixed( 0.137754f ), CMathFixed_FloatToFixed( 0.139275f ),
    CMathFixed_FloatToFixed( 0.140795f ), CMathFixed_FloatToFixed( 0.142315f ),
    CMathFixed_FloatToFixed( 0.143835f ), CMathFixed_FloatToFixed( 0.145354f ),
    CMathFixed_FloatToFixed( 0.146873f ), CMathFixed_FloatToFixed( 0.148392f ),
    CMathFixed_FloatToFixed( 0.149910f ), CMathFixed_FloatToFixed( 0.151428f ),
    CMathFixed_FloatToFixed( 0.152945f ), CMathFixed_FloatToFixed( 0.154463f ),
    CMathFixed_FloatToFixed( 0.155979f ), CMathFixed_FloatToFixed( 0.157496f ),
    CMathFixed_FloatToFixed( 0.159012f ), CMathFixed_FloatToFixed( 0.160528f ),
    CMathFixed_FloatToFixed( 0.162043f ), CMathFixed_FloatToFixed( 0.163558f ),
    CMathFixed_FloatToFixed( 0.165073f ), CMathFixed_FloatToFixed( 0.166587f ),
    CMathFixed_FloatToFixed( 0.168101f ), CMathFixed_FloatToFixed( 0.169614f ),
    CMathFixed_FloatToFixed( 0.171127f ), CMathFixed_FloatToFixed( 0.172640f ),
    CMathFixed_FloatToFixed( 0.174152f ), CMathFixed_FloatToFixed( 0.175664f ),
    CMathFixed_FloatToFixed( 0.177175f ), CMathFixed_FloatToFixed( 0.178686f ),
    CMathFixed_FloatToFixed( 0.180197f ), CMathFixed_FloatToFixed( 0.181707f ),
    CMathFixed_FloatToFixed( 0.183217f ), CMathFixed_FloatToFixed( 0.184726f ),
    CMathFixed_FloatToFixed( 0.186235f ), CMathFixed_FloatToFixed( 0.187743f ),
    CMathFixed_FloatToFixed( 0.189251f ), CMathFixed_FloatToFixed( 0.190759f ),
    CMathFixed_FloatToFixed( 0.192266f ), CMathFixed_FloatToFixed( 0.193772f ),
    CMathFixed_FloatToFixed( 0.195278f ), CMathFixed_FloatToFixed( 0.196784f ),
    CMathFixed_FloatToFixed( 0.198289f ), CMathFixed_FloatToFixed( 0.199794f ),
    CMathFixed_FloatToFixed( 0.201298f ), CMathFixed_FloatToFixed( 0.202802f ),
    CMathFixed_FloatToFixed( 0.204305f ), CMathFixed_FloatToFixed( 0.205808f ),
    CMathFixed_FloatToFixed( 0.207311f ), CMathFixed_FloatToFixed( 0.208813f ),
    CMathFixed_FloatToFixed( 0.210314f ), CMathFixed_FloatToFixed( 0.211815f ),
    CMathFixed_FloatToFixed( 0.213315f ), CMathFixed_FloatToFixed( 0.214815f ),
    CMathFixed_FloatToFixed( 0.216314f ), CMathFixed_FloatToFixed( 0.217813f ),
    CMathFixed_FloatToFixed( 0.219312f ), CMathFixed_FloatToFixed( 0.220810f ),
    CMathFixed_FloatToFixed( 0.222307f ), CMathFixed_FloatToFixed( 0.223804f ),
    CMathFixed_FloatToFixed( 0.225300f ), CMathFixed_FloatToFixed( 0.226796f ),
    CMathFixed_FloatToFixed( 0.228291f ), CMathFixed_FloatToFixed( 0.229785f ),
    CMathFixed_FloatToFixed( 0.231280f ), CMathFixed_FloatToFixed( 0.232773f ),
    CMathFixed_FloatToFixed( 0.234266f ), CMathFixed_FloatToFixed( 0.235759f ),
    CMathFixed_FloatToFixed( 0.237251f ), CMathFixed_FloatToFixed( 0.238742f ),
    CMathFixed_FloatToFixed( 0.240233f ), CMathFixed_FloatToFixed( 0.241723f ),
    CMathFixed_FloatToFixed( 0.243213f ), CMathFixed_FloatToFixed( 0.244702f ),
    CMathFixed_FloatToFixed( 0.246190f ), CMathFixed_FloatToFixed( 0.247678f ),
    CMathFixed_FloatToFixed( 0.249165f ), CMathFixed_FloatToFixed( 0.250652f ),
    CMathFixed_FloatToFixed( 0.252138f ), CMathFixed_FloatToFixed( 0.253624f ),
    CMathFixed_FloatToFixed( 0.255109f ), CMathFixed_FloatToFixed( 0.256593f ),
    CMathFixed_FloatToFixed( 0.258077f ), CMathFixed_FloatToFixed( 0.259560f ),
    CMathFixed_FloatToFixed( 0.261043f ), CMathFixed_FloatToFixed( 0.262525f ),
    CMathFixed_FloatToFixed( 0.264006f ), CMathFixed_FloatToFixed( 0.265487f ),
    CMathFixed_FloatToFixed( 0.266967f ), CMathFixed_FloatToFixed( 0.268446f ),
    CMathFixed_FloatToFixed( 0.269925f ), CMathFixed_FloatToFixed( 0.271403f ),
    CMathFixed_FloatToFixed( 0.272881f ), CMathFixed_FloatToFixed( 0.274358f ),
    CMathFixed_FloatToFixed( 0.275834f ), CMathFixed_FloatToFixed( 0.277309f ),
    CMathFixed_FloatToFixed( 0.278784f ), CMathFixed_FloatToFixed( 0.280259f ),
    CMathFixed_FloatToFixed( 0.281732f ), CMathFixed_FloatToFixed( 0.283205f ),
    CMathFixed_FloatToFixed( 0.284677f ), CMathFixed_FloatToFixed( 0.286149f ),
    CMathFixed_FloatToFixed( 0.287620f ), CMathFixed_FloatToFixed( 0.289090f ),
    CMathFixed_FloatToFixed( 0.290560f ), CMathFixed_FloatToFixed( 0.292029f ),
    CMathFixed_FloatToFixed( 0.293497f ), CMathFixed_FloatToFixed( 0.294964f ),
    CMathFixed_FloatToFixed( 0.296431f ), CMathFixed_FloatToFixed( 0.297897f ),
    CMathFixed_FloatToFixed( 0.299363f ), CMathFixed_FloatToFixed( 0.300827f ),
    CMathFixed_FloatToFixed( 0.302291f ), CMathFixed_FloatToFixed( 0.303755f ),
    CMathFixed_FloatToFixed( 0.305217f ), CMathFixed_FloatToFixed( 0.306679f ),
    CMathFixed_FloatToFixed( 0.308140f ), CMathFixed_FloatToFixed( 0.309601f ),
    CMathFixed_FloatToFixed( 0.311060f ), CMathFixed_FloatToFixed( 0.312519f ),
    CMathFixed_FloatToFixed( 0.313977f ), CMathFixed_FloatToFixed( 0.315435f ),
    CMathFixed_FloatToFixed( 0.316892f ), CMathFixed_FloatToFixed( 0.318348f ),
    CMathFixed_FloatToFixed( 0.319803f ), CMathFixed_FloatToFixed( 0.321257f ),
    CMathFixed_FloatToFixed( 0.322711f ), CMathFixed_FloatToFixed( 0.324164f ),
    CMathFixed_FloatToFixed( 0.325616f ), CMathFixed_FloatToFixed( 0.327067f ),
    CMathFixed_FloatToFixed( 0.328518f ), CMathFixed_FloatToFixed( 0.329968f ),
    CMathFixed_FloatToFixed( 0.331417f ), CMathFixed_FloatToFixed( 0.332865f ),
    CMathFixed_FloatToFixed( 0.334313f ), CMathFixed_FloatToFixed( 0.335760f ),
    CMathFixed_FloatToFixed( 0.337205f ), CMathFixed_FloatToFixed( 0.338651f ),
    CMathFixed_FloatToFixed( 0.340095f ), CMathFixed_FloatToFixed( 0.341539f ),
    CMathFixed_FloatToFixed( 0.342981f ), CMathFixed_FloatToFixed( 0.344423f ),
    CMathFixed_FloatToFixed( 0.345864f ), CMathFixed_FloatToFixed( 0.347305f ),
    CMathFixed_FloatToFixed( 0.348744f ), CMathFixed_FloatToFixed( 0.350183f ),
    CMathFixed_FloatToFixed( 0.351621f ), CMathFixed_FloatToFixed( 0.353058f ),
    CMathFixed_FloatToFixed( 0.354494f ), CMathFixed_FloatToFixed( 0.355929f ),
    CMathFixed_FloatToFixed( 0.357364f ), CMathFixed_FloatToFixed( 0.358797f ),
    CMathFixed_FloatToFixed( 0.360230f ), CMathFixed_FloatToFixed( 0.361662f ),
    CMathFixed_FloatToFixed( 0.363093f ), CMathFixed_FloatToFixed( 0.364523f ),
    CMathFixed_FloatToFixed( 0.365953f ), CMathFixed_FloatToFixed( 0.367381f ),
    CMathFixed_FloatToFixed( 0.368809f ), CMathFixed_FloatToFixed( 0.370236f ),
    CMathFixed_FloatToFixed( 0.371662f ), CMathFixed_FloatToFixed( 0.373087f ),
    CMathFixed_FloatToFixed( 0.374511f ), CMathFixed_FloatToFixed( 0.375934f ),
    CMathFixed_FloatToFixed( 0.377357f ), CMathFixed_FloatToFixed( 0.378778f ),
    CMathFixed_FloatToFixed( 0.380199f ), CMathFixed_FloatToFixed( 0.381618f ),
    CMathFixed_FloatToFixed( 0.383037f ), CMathFixed_FloatToFixed( 0.384455f ),
    CMathFixed_FloatToFixed( 0.385872f ), CMathFixed_FloatToFixed( 0.387288f ),
    CMathFixed_FloatToFixed( 0.388704f ), CMathFixed_FloatToFixed( 0.390118f ),
    CMathFixed_FloatToFixed( 0.391531f ), CMathFixed_FloatToFixed( 0.392944f ),
    CMathFixed_FloatToFixed( 0.394355f ), CMathFixed_FloatToFixed( 0.395766f ),
    CMathFixed_FloatToFixed( 0.397175f ), CMathFixed_FloatToFixed( 0.398584f ),
    CMathFixed_FloatToFixed( 0.399992f ), CMathFixed_FloatToFixed( 0.401399f ),
    CMathFixed_FloatToFixed( 0.402804f ), CMathFixed_FloatToFixed( 0.404209f ),
    CMathFixed_FloatToFixed( 0.405613f ), CMathFixed_FloatToFixed( 0.407016f ),
    CMathFixed_FloatToFixed( 0.408418f ), CMathFixed_FloatToFixed( 0.409820f ),
    CMathFixed_FloatToFixed( 0.411220f ), CMathFixed_FloatToFixed( 0.412619f ),
    CMathFixed_FloatToFixed( 0.414017f ), CMathFixed_FloatToFixed( 0.415414f ),
    CMathFixed_FloatToFixed( 0.416810f ), CMathFixed_FloatToFixed( 0.418206f ),
    CMathFixed_FloatToFixed( 0.419600f ), CMathFixed_FloatToFixed( 0.420993f ),
    CMathFixed_FloatToFixed( 0.422385f ), CMathFixed_FloatToFixed( 0.423777f ),
    CMathFixed_FloatToFixed( 0.425167f ), CMathFixed_FloatToFixed( 0.426556f ),
    CMathFixed_FloatToFixed( 0.427945f ), CMathFixed_FloatToFixed( 0.429332f ),
    CMathFixed_FloatToFixed( 0.430718f ), CMathFixed_FloatToFixed( 0.432103f ),
    CMathFixed_FloatToFixed( 0.433488f ), CMathFixed_FloatToFixed( 0.434871f ),
    CMathFixed_FloatToFixed( 0.436253f ), CMathFixed_FloatToFixed( 0.437634f ),
    CMathFixed_FloatToFixed( 0.439014f ), CMathFixed_FloatToFixed( 0.440393f ),
    CMathFixed_FloatToFixed( 0.441771f ), CMathFixed_FloatToFixed( 0.443148f ),
    CMathFixed_FloatToFixed( 0.444524f ), CMathFixed_FloatToFixed( 0.445899f ),
    CMathFixed_FloatToFixed( 0.447273f ), CMathFixed_FloatToFixed( 0.448646f ),
    CMathFixed_FloatToFixed( 0.450018f ), CMathFixed_FloatToFixed( 0.451388f ),
    CMathFixed_FloatToFixed( 0.452758f ), CMathFixed_FloatToFixed( 0.454126f ),
    CMathFixed_FloatToFixed( 0.455494f ), CMathFixed_FloatToFixed( 0.456860f ),
    CMathFixed_FloatToFixed( 0.458226f ), CMathFixed_FloatToFixed( 0.459590f ),
    CMathFixed_FloatToFixed( 0.460953f ), CMathFixed_FloatToFixed( 0.462315f ),
    CMathFixed_FloatToFixed( 0.463676f ), CMathFixed_FloatToFixed( 0.465036f ),
    CMathFixed_FloatToFixed( 0.466395f ), CMathFixed_FloatToFixed( 0.467752f ),
    CMathFixed_FloatToFixed( 0.469109f ), CMathFixed_FloatToFixed( 0.470465f ),
    CMathFixed_FloatToFixed( 0.471819f ), CMathFixed_FloatToFixed( 0.473172f ),
    CMathFixed_FloatToFixed( 0.474524f ), CMathFixed_FloatToFixed( 0.475875f ),
    CMathFixed_FloatToFixed( 0.477225f ), CMathFixed_FloatToFixed( 0.478574f ),
    CMathFixed_FloatToFixed( 0.479922f ), CMathFixed_FloatToFixed( 0.481268f ),
    CMathFixed_FloatToFixed( 0.482614f ), CMathFixed_FloatToFixed( 0.483958f ),
    CMathFixed_FloatToFixed( 0.485301f ), CMathFixed_FloatToFixed( 0.486643f ),
    CMathFixed_FloatToFixed( 0.487984f ), CMathFixed_FloatToFixed( 0.489323f ),
    CMathFixed_FloatToFixed( 0.490662f ), CMathFixed_FloatToFixed( 0.491999f ),
    CMathFixed_FloatToFixed( 0.493336f ), CMathFixed_FloatToFixed( 0.494671f ),
    CMathFixed_FloatToFixed( 0.496004f ), CMathFixed_FloatToFixed( 0.497337f ),
    CMathFixed_FloatToFixed( 0.498669f ), CMathFixed_FloatToFixed( 0.499999f ),
    CMathFixed_FloatToFixed( 0.501328f ), CMathFixed_FloatToFixed( 0.502656f ),
    CMathFixed_FloatToFixed( 0.503983f ), CMathFixed_FloatToFixed( 0.505309f ),
    CMathFixed_FloatToFixed( 0.506633f ), CMathFixed_FloatToFixed( 0.507956f ),
    CMathFixed_FloatToFixed( 0.509278f ), CMathFixed_FloatToFixed( 0.510599f ),
    CMathFixed_FloatToFixed( 0.511919f ), CMathFixed_FloatToFixed( 0.513237f ),
    CMathFixed_FloatToFixed( 0.514554f ), CMathFixed_FloatToFixed( 0.515870f ),
    CMathFixed_FloatToFixed( 0.517185f ), CMathFixed_FloatToFixed( 0.518499f ),
    CMathFixed_FloatToFixed( 0.519811f ), CMathFixed_FloatToFixed( 0.521122f ),
    CMathFixed_FloatToFixed( 0.522432f ), CMathFixed_FloatToFixed( 0.523741f ),
    CMathFixed_FloatToFixed( 0.525048f ), CMathFixed_FloatToFixed( 0.526354f ),
    CMathFixed_FloatToFixed( 0.527659f ), CMathFixed_FloatToFixed( 0.528963f ),
    CMathFixed_FloatToFixed( 0.530265f ), CMathFixed_FloatToFixed( 0.531567f ),
    CMathFixed_FloatToFixed( 0.532867f ), CMathFixed_FloatToFixed( 0.534165f ),
    CMathFixed_FloatToFixed( 0.535463f ), CMathFixed_FloatToFixed( 0.536759f ),
    CMathFixed_FloatToFixed( 0.538054f ), CMathFixed_FloatToFixed( 0.539347f ),
    CMathFixed_FloatToFixed( 0.540640f ), CMathFixed_FloatToFixed( 0.541931f ),
    CMathFixed_FloatToFixed( 0.543221f ), CMathFixed_FloatToFixed( 0.544509f ),
    CMathFixed_FloatToFixed( 0.545796f ), CMathFixed_FloatToFixed( 0.547082f ),
    CMathFixed_FloatToFixed( 0.548367f ), CMathFixed_FloatToFixed( 0.549650f ),
    CMathFixed_FloatToFixed( 0.550932f ), CMathFixed_FloatToFixed( 0.552213f ),
    CMathFixed_FloatToFixed( 0.553493f ), CMathFixed_FloatToFixed( 0.554771f ),
    CMathFixed_FloatToFixed( 0.556048f ), CMathFixed_FloatToFixed( 0.557323f ),
    CMathFixed_FloatToFixed( 0.558598f ), CMathFixed_FloatToFixed( 0.559870f ),
    CMathFixed_FloatToFixed( 0.561142f ), CMathFixed_FloatToFixed( 0.562412f ),
    CMathFixed_FloatToFixed( 0.563681f ), CMathFixed_FloatToFixed( 0.564949f ),
    CMathFixed_FloatToFixed( 0.566215f ), CMathFixed_FloatToFixed( 0.567480f ),
    CMathFixed_FloatToFixed( 0.568744f ), CMathFixed_FloatToFixed( 0.570006f ),
    CMathFixed_FloatToFixed( 0.571267f ), CMathFixed_FloatToFixed( 0.572527f ),
    CMathFixed_FloatToFixed( 0.573785f ), CMathFixed_FloatToFixed( 0.575042f ),
    CMathFixed_FloatToFixed( 0.576297f ), CMathFixed_FloatToFixed( 0.577551f ),
    CMathFixed_FloatToFixed( 0.578804f ), CMathFixed_FloatToFixed( 0.580056f ),
    CMathFixed_FloatToFixed( 0.581306f ), CMathFixed_FloatToFixed( 0.582554f ),
    CMathFixed_FloatToFixed( 0.583802f ), CMathFixed_FloatToFixed( 0.585048f ),
    CMathFixed_FloatToFixed( 0.586292f ), CMathFixed_FloatToFixed( 0.587536f ),
    CMathFixed_FloatToFixed( 0.588777f ), CMathFixed_FloatToFixed( 0.590018f ),
    CMathFixed_FloatToFixed( 0.591257f ), CMathFixed_FloatToFixed( 0.592494f ),
    CMathFixed_FloatToFixed( 0.593731f ), CMathFixed_FloatToFixed( 0.594966f ),
    CMathFixed_FloatToFixed( 0.596199f ), CMathFixed_FloatToFixed( 0.597431f ),
    CMathFixed_FloatToFixed( 0.598662f ), CMathFixed_FloatToFixed( 0.599891f ),
    CMathFixed_FloatToFixed( 0.601119f ), CMathFixed_FloatToFixed( 0.602345f ),
    CMathFixed_FloatToFixed( 0.603570f ), CMathFixed_FloatToFixed( 0.604794f ),
    CMathFixed_FloatToFixed( 0.606016f ), CMathFixed_FloatToFixed( 0.607236f ),
    CMathFixed_FloatToFixed( 0.608456f ), CMathFixed_FloatToFixed( 0.609673f ),
    CMathFixed_FloatToFixed( 0.610890f ), CMathFixed_FloatToFixed( 0.612105f ),
    CMathFixed_FloatToFixed( 0.613318f ), CMathFixed_FloatToFixed( 0.614530f ),
    CMathFixed_FloatToFixed( 0.615741f ), CMathFixed_FloatToFixed( 0.616950f ),
    CMathFixed_FloatToFixed( 0.618158f ), CMathFixed_FloatToFixed( 0.619364f ),
    CMathFixed_FloatToFixed( 0.620569f ), CMathFixed_FloatToFixed( 0.621772f ),
    CMathFixed_FloatToFixed( 0.622974f ), CMathFixed_FloatToFixed( 0.624174f ),
    CMathFixed_FloatToFixed( 0.625373f ), CMathFixed_FloatToFixed( 0.626571f ),
    CMathFixed_FloatToFixed( 0.627767f ), CMathFixed_FloatToFixed( 0.628961f ),
    CMathFixed_FloatToFixed( 0.630154f ), CMathFixed_FloatToFixed( 0.631346f ),
    CMathFixed_FloatToFixed( 0.632536f ), CMathFixed_FloatToFixed( 0.633724f ),
    CMathFixed_FloatToFixed( 0.634911f ), CMathFixed_FloatToFixed( 0.636097f ),
    CMathFixed_FloatToFixed( 0.637281f ), CMathFixed_FloatToFixed( 0.638463f ),
    CMathFixed_FloatToFixed( 0.639644f ), CMathFixed_FloatToFixed( 0.640824f ),
    CMathFixed_FloatToFixed( 0.642002f ), CMathFixed_FloatToFixed( 0.643178f ),
    CMathFixed_FloatToFixed( 0.644353f ), CMathFixed_FloatToFixed( 0.645527f ),
    CMathFixed_FloatToFixed( 0.646699f ), CMathFixed_FloatToFixed( 0.647869f ),
    CMathFixed_FloatToFixed( 0.649038f ), CMathFixed_FloatToFixed( 0.650205f ),
    CMathFixed_FloatToFixed( 0.651371f ), CMathFixed_FloatToFixed( 0.652535f ),
    CMathFixed_FloatToFixed( 0.653698f ), CMathFixed_FloatToFixed( 0.654859f ),
    CMathFixed_FloatToFixed( 0.656019f ), CMathFixed_FloatToFixed( 0.657177f ),
    CMathFixed_FloatToFixed( 0.658334f ), CMathFixed_FloatToFixed( 0.659489f ),
    CMathFixed_FloatToFixed( 0.660642f ), CMathFixed_FloatToFixed( 0.661794f ),
    CMathFixed_FloatToFixed( 0.662944f ), CMathFixed_FloatToFixed( 0.664093f ),
    CMathFixed_FloatToFixed( 0.665240f ), CMathFixed_FloatToFixed( 0.666386f ),
    CMathFixed_FloatToFixed( 0.667530f ), CMathFixed_FloatToFixed( 0.668673f ),
    CMathFixed_FloatToFixed( 0.669814f ), CMathFixed_FloatToFixed( 0.670953f ),
    CMathFixed_FloatToFixed( 0.672091f ), CMathFixed_FloatToFixed( 0.673227f ),
    CMathFixed_FloatToFixed( 0.674361f ), CMathFixed_FloatToFixed( 0.675494f ),
    CMathFixed_FloatToFixed( 0.676626f ), CMathFixed_FloatToFixed( 0.677756f ),
    CMathFixed_FloatToFixed( 0.678884f ), CMathFixed_FloatToFixed( 0.680010f ),
    CMathFixed_FloatToFixed( 0.681136f ), CMathFixed_FloatToFixed( 0.682259f ),
    CMathFixed_FloatToFixed( 0.683381f ), CMathFixed_FloatToFixed( 0.684501f ),
    CMathFixed_FloatToFixed( 0.685619f ), CMathFixed_FloatToFixed( 0.686736f ),
    CMathFixed_FloatToFixed( 0.687852f ), CMathFixed_FloatToFixed( 0.688965f ),
    CMathFixed_FloatToFixed( 0.690078f ), CMathFixed_FloatToFixed( 0.691188f ),
    CMathFixed_FloatToFixed( 0.692297f ), CMathFixed_FloatToFixed( 0.693404f ),
    CMathFixed_FloatToFixed( 0.694510f ), CMathFixed_FloatToFixed( 0.695614f ),
    CMathFixed_FloatToFixed( 0.696716f ), CMathFixed_FloatToFixed( 0.697817f ),
    CMathFixed_FloatToFixed( 0.698916f ), CMathFixed_FloatToFixed( 0.700013f ),
    CMathFixed_FloatToFixed( 0.701109f ), CMathFixed_FloatToFixed( 0.702203f ),
    CMathFixed_FloatToFixed( 0.703295f ), CMathFixed_FloatToFixed( 0.704386f ),
    CMathFixed_FloatToFixed( 0.705475f ), CMathFixed_FloatToFixed( 0.706562f ),
    CMathFixed_FloatToFixed( 0.707648f ), CMathFixed_FloatToFixed( 0.708732f ),
    CMathFixed_FloatToFixed( 0.709814f ), CMathFixed_FloatToFixed( 0.710895f ),
    CMathFixed_FloatToFixed( 0.711974f ), CMathFixed_FloatToFixed( 0.713052f ),
    CMathFixed_FloatToFixed( 0.714127f ), CMathFixed_FloatToFixed( 0.715201f ),
    CMathFixed_FloatToFixed( 0.716274f ), CMathFixed_FloatToFixed( 0.717344f ),
    CMathFixed_FloatToFixed( 0.718413f ), CMathFixed_FloatToFixed( 0.719481f ),
    CMathFixed_FloatToFixed( 0.720546f ), CMathFixed_FloatToFixed( 0.721610f ),
    CMathFixed_FloatToFixed( 0.722672f ), CMathFixed_FloatToFixed( 0.723733f ),
    CMathFixed_FloatToFixed( 0.724791f ), CMathFixed_FloatToFixed( 0.725848f ),
    CMathFixed_FloatToFixed( 0.726904f ), CMathFixed_FloatToFixed( 0.727957f ),
    CMathFixed_FloatToFixed( 0.729009f ), CMathFixed_FloatToFixed( 0.730059f ),
    CMathFixed_FloatToFixed( 0.731108f ), CMathFixed_FloatToFixed( 0.732155f ),
    CMathFixed_FloatToFixed( 0.733200f ), CMathFixed_FloatToFixed( 0.734243f ),
    CMathFixed_FloatToFixed( 0.735284f ), CMathFixed_FloatToFixed( 0.736324f ),
    CMathFixed_FloatToFixed( 0.737362f ), CMathFixed_FloatToFixed( 0.738399f ),
    CMathFixed_FloatToFixed( 0.739433f ), CMathFixed_FloatToFixed( 0.740466f ),
    CMathFixed_FloatToFixed( 0.741497f ), CMathFixed_FloatToFixed( 0.742527f ),
    CMathFixed_FloatToFixed( 0.743554f ), CMathFixed_FloatToFixed( 0.744580f ),
    CMathFixed_FloatToFixed( 0.745604f ), CMathFixed_FloatToFixed( 0.746626f ),
    CMathFixed_FloatToFixed( 0.747647f ), CMathFixed_FloatToFixed( 0.748666f ),
    CMathFixed_FloatToFixed( 0.749683f ), CMathFixed_FloatToFixed( 0.750698f ),
    CMathFixed_FloatToFixed( 0.751712f ), CMathFixed_FloatToFixed( 0.752724f ),
    CMathFixed_FloatToFixed( 0.753733f ), CMathFixed_FloatToFixed( 0.754742f ),
    CMathFixed_FloatToFixed( 0.755748f ), CMathFixed_FloatToFixed( 0.756753f ),
    CMathFixed_FloatToFixed( 0.757756f ), CMathFixed_FloatToFixed( 0.758757f ),
    CMathFixed_FloatToFixed( 0.759756f ), CMathFixed_FloatToFixed( 0.760753f ),
    CMathFixed_FloatToFixed( 0.761749f ), CMathFixed_FloatToFixed( 0.762743f ),
    CMathFixed_FloatToFixed( 0.763735f ), CMathFixed_FloatToFixed( 0.764725f ),
    CMathFixed_FloatToFixed( 0.765714f ), CMathFixed_FloatToFixed( 0.766701f ),
    CMathFixed_FloatToFixed( 0.767685f ), CMathFixed_FloatToFixed( 0.768668f ),
    CMathFixed_FloatToFixed( 0.769650f ), CMathFixed_FloatToFixed( 0.770629f ),
    CMathFixed_FloatToFixed( 0.771607f ), CMathFixed_FloatToFixed( 0.772583f ),
    CMathFixed_FloatToFixed( 0.773557f ), CMathFixed_FloatToFixed( 0.774529f ),
    CMathFixed_FloatToFixed( 0.775499f ), CMathFixed_FloatToFixed( 0.776468f ),
    CMathFixed_FloatToFixed( 0.777434f ), CMathFixed_FloatToFixed( 0.778399f ),
    CMathFixed_FloatToFixed( 0.779362f ), CMathFixed_FloatToFixed( 0.780323f ),
    CMathFixed_FloatToFixed( 0.781283f ), CMathFixed_FloatToFixed( 0.782240f ),
    CMathFixed_FloatToFixed( 0.783196f ), CMathFixed_FloatToFixed( 0.784150f ),
    CMathFixed_FloatToFixed( 0.785101f ), CMathFixed_FloatToFixed( 0.786052f ),
    CMathFixed_FloatToFixed( 0.787000f ), CMathFixed_FloatToFixed( 0.787946f ),
    CMathFixed_FloatToFixed( 0.788891f ), CMathFixed_FloatToFixed( 0.789833f ),
    CMathFixed_FloatToFixed( 0.790774f ), CMathFixed_FloatToFixed( 0.791713f ),
    CMathFixed_FloatToFixed( 0.792650f ), CMathFixed_FloatToFixed( 0.793585f ),
    CMathFixed_FloatToFixed( 0.794519f ), CMathFixed_FloatToFixed( 0.795450f ),
    CMathFixed_FloatToFixed( 0.796380f ), CMathFixed_FloatToFixed( 0.797308f ),
    CMathFixed_FloatToFixed( 0.798233f ), CMathFixed_FloatToFixed( 0.799157f ),
    CMathFixed_FloatToFixed( 0.800079f ), CMathFixed_FloatToFixed( 0.801000f ),
    CMathFixed_FloatToFixed( 0.801918f ), CMathFixed_FloatToFixed( 0.802834f ),
    CMathFixed_FloatToFixed( 0.803749f ), CMathFixed_FloatToFixed( 0.804661f ),
    CMathFixed_FloatToFixed( 0.805572f ), CMathFixed_FloatToFixed( 0.806481f ),
    CMathFixed_FloatToFixed( 0.807388f ), CMathFixed_FloatToFixed( 0.808293f ),
    CMathFixed_FloatToFixed( 0.809196f ), CMathFixed_FloatToFixed( 0.810097f ),
    CMathFixed_FloatToFixed( 0.810996f ), CMathFixed_FloatToFixed( 0.811894f ),
    CMathFixed_FloatToFixed( 0.812789f ), CMathFixed_FloatToFixed( 0.813683f ),
    CMathFixed_FloatToFixed( 0.814574f ), CMathFixed_FloatToFixed( 0.815464f ),
    CMathFixed_FloatToFixed( 0.816352f ), CMathFixed_FloatToFixed( 0.817238f ),
    CMathFixed_FloatToFixed( 0.818122f ), CMathFixed_FloatToFixed( 0.819004f ),
    CMathFixed_FloatToFixed( 0.819884f ), CMathFixed_FloatToFixed( 0.820762f ),
    CMathFixed_FloatToFixed( 0.821638f ), CMathFixed_FloatToFixed( 0.822512f ),
    CMathFixed_FloatToFixed( 0.823385f ), CMathFixed_FloatToFixed( 0.824255f ),
    CMathFixed_FloatToFixed( 0.825124f ), CMathFixed_FloatToFixed( 0.825990f ),
    CMathFixed_FloatToFixed( 0.826855f ), CMathFixed_FloatToFixed( 0.827717f ),
    CMathFixed_FloatToFixed( 0.828578f ), CMathFixed_FloatToFixed( 0.829437f ),
    CMathFixed_FloatToFixed( 0.830293f ), CMathFixed_FloatToFixed( 0.831148f ),
    CMathFixed_FloatToFixed( 0.832001f ), CMathFixed_FloatToFixed( 0.832852f ),
    CMathFixed_FloatToFixed( 0.833701f ), CMathFixed_FloatToFixed( 0.834548f ),
    CMathFixed_FloatToFixed( 0.835393f ), CMathFixed_FloatToFixed( 0.836236f ),
    CMathFixed_FloatToFixed( 0.837077f ), CMathFixed_FloatToFixed( 0.837916f ),
    CMathFixed_FloatToFixed( 0.838753f ), CMathFixed_FloatToFixed( 0.839588f ),
    CMathFixed_FloatToFixed( 0.840421f ), CMathFixed_FloatToFixed( 0.841252f ),
    CMathFixed_FloatToFixed( 0.842081f ), CMathFixed_FloatToFixed( 0.842908f ),
    CMathFixed_FloatToFixed( 0.843734f ), CMathFixed_FloatToFixed( 0.844557f ),
    CMathFixed_FloatToFixed( 0.845378f ), CMathFixed_FloatToFixed( 0.846197f ),
    CMathFixed_FloatToFixed( 0.847015f ), CMathFixed_FloatToFixed( 0.847830f ),
    CMathFixed_FloatToFixed( 0.848643f ), CMathFixed_FloatToFixed( 0.849454f ),
    CMathFixed_FloatToFixed( 0.850264f ), CMathFixed_FloatToFixed( 0.851071f ),
    CMathFixed_FloatToFixed( 0.851876f ), CMathFixed_FloatToFixed( 0.852679f ),
    CMathFixed_FloatToFixed( 0.853480f ), CMathFixed_FloatToFixed( 0.854280f ),
    CMathFixed_FloatToFixed( 0.855077f ), CMathFixed_FloatToFixed( 0.855872f ),
    CMathFixed_FloatToFixed( 0.856665f ), CMathFixed_FloatToFixed( 0.857456f ),
    CMathFixed_FloatToFixed( 0.858245f ), CMathFixed_FloatToFixed( 0.859033f ),
    CMathFixed_FloatToFixed( 0.859818f ), CMathFixed_FloatToFixed( 0.860601f ),
    CMathFixed_FloatToFixed( 0.861382f ), CMathFixed_FloatToFixed( 0.862161f ),
    CMathFixed_FloatToFixed( 0.862938f ), CMathFixed_FloatToFixed( 0.863712f ),
    CMathFixed_FloatToFixed( 0.864485f ), CMathFixed_FloatToFixed( 0.865256f ),
    CMathFixed_FloatToFixed( 0.866025f ), CMathFixed_FloatToFixed( 0.866792f ),
    CMathFixed_FloatToFixed( 0.867556f ), CMathFixed_FloatToFixed( 0.868319f ),
    CMathFixed_FloatToFixed( 0.869080f ), CMathFixed_FloatToFixed( 0.869838f ),
    CMathFixed_FloatToFixed( 0.870595f ), CMathFixed_FloatToFixed( 0.871349f ),
    CMathFixed_FloatToFixed( 0.872102f ), CMathFixed_FloatToFixed( 0.872852f ),
    CMathFixed_FloatToFixed( 0.873600f ), CMathFixed_FloatToFixed( 0.874346f ),
    CMathFixed_FloatToFixed( 0.875091f ), CMathFixed_FloatToFixed( 0.875833f ),
    CMathFixed_FloatToFixed( 0.876573f ), CMathFixed_FloatToFixed( 0.877311f ),
    CMathFixed_FloatToFixed( 0.878047f ), CMathFixed_FloatToFixed( 0.878780f ),
    CMathFixed_FloatToFixed( 0.879512f ), CMathFixed_FloatToFixed( 0.880242f ),
    CMathFixed_FloatToFixed( 0.880969f ), CMathFixed_FloatToFixed( 0.881695f ),
    CMathFixed_FloatToFixed( 0.882418f ), CMathFixed_FloatToFixed( 0.883140f ),
    CMathFixed_FloatToFixed( 0.883859f ), CMathFixed_FloatToFixed( 0.884576f ),
    CMathFixed_FloatToFixed( 0.885291f ), CMathFixed_FloatToFixed( 0.886005f ),
    CMathFixed_FloatToFixed( 0.886715f ), CMathFixed_FloatToFixed( 0.887424f ),
    CMathFixed_FloatToFixed( 0.888131f ), CMathFixed_FloatToFixed( 0.888836f ),
    CMathFixed_FloatToFixed( 0.889538f ), CMathFixed_FloatToFixed( 0.890239f ),
    CMathFixed_FloatToFixed( 0.890937f ), CMathFixed_FloatToFixed( 0.891633f ),
    CMathFixed_FloatToFixed( 0.892328f ), CMathFixed_FloatToFixed( 0.893020f ),
    CMathFixed_FloatToFixed( 0.893710f ), CMathFixed_FloatToFixed( 0.894397f ),
    CMathFixed_FloatToFixed( 0.895083f ), CMathFixed_FloatToFixed( 0.895767f ),
    CMathFixed_FloatToFixed( 0.896448f ), CMathFixed_FloatToFixed( 0.897128f ),
    CMathFixed_FloatToFixed( 0.897805f ), CMathFixed_FloatToFixed( 0.898480f ),
    CMathFixed_FloatToFixed( 0.899153f ), CMathFixed_FloatToFixed( 0.899824f ),
    CMathFixed_FloatToFixed( 0.900493f ), CMathFixed_FloatToFixed( 0.901160f ),
    CMathFixed_FloatToFixed( 0.901824f ), CMathFixed_FloatToFixed( 0.902487f ),
    CMathFixed_FloatToFixed( 0.903147f ), CMathFixed_FloatToFixed( 0.903805f ),
    CMathFixed_FloatToFixed( 0.904461f ), CMathFixed_FloatToFixed( 0.905115f ),
    CMathFixed_FloatToFixed( 0.905767f ), CMathFixed_FloatToFixed( 0.906417f ),
    CMathFixed_FloatToFixed( 0.907064f ), CMathFixed_FloatToFixed( 0.907710f ),
    CMathFixed_FloatToFixed( 0.908353f ), CMathFixed_FloatToFixed( 0.908994f ),
    CMathFixed_FloatToFixed( 0.909633f ), CMathFixed_FloatToFixed( 0.910270f ),
    CMathFixed_FloatToFixed( 0.910904f ), CMathFixed_FloatToFixed( 0.911537f ),
    CMathFixed_FloatToFixed( 0.912167f ), CMathFixed_FloatToFixed( 0.912796f ),
    CMathFixed_FloatToFixed( 0.913422f ), CMathFixed_FloatToFixed( 0.914046f ),
    CMathFixed_FloatToFixed( 0.914667f ), CMathFixed_FloatToFixed( 0.915287f ),
    CMathFixed_FloatToFixed( 0.915904f ), CMathFixed_FloatToFixed( 0.916520f ),
    CMathFixed_FloatToFixed( 0.917133f ), CMathFixed_FloatToFixed( 0.917744f ),
    CMathFixed_FloatToFixed( 0.918352f ), CMathFixed_FloatToFixed( 0.918959f ),
    CMathFixed_FloatToFixed( 0.919564f ), CMathFixed_FloatToFixed( 0.920166f ),
    CMathFixed_FloatToFixed( 0.920766f ), CMathFixed_FloatToFixed( 0.921364f ),
    CMathFixed_FloatToFixed( 0.921960f ), CMathFixed_FloatToFixed( 0.922553f ),
    CMathFixed_FloatToFixed( 0.923145f ), CMathFixed_FloatToFixed( 0.923734f ),
    CMathFixed_FloatToFixed( 0.924321f ), CMathFixed_FloatToFixed( 0.924906f ),
    CMathFixed_FloatToFixed( 0.925489f ), CMathFixed_FloatToFixed( 0.926069f ),
    CMathFixed_FloatToFixed( 0.926647f ), CMathFixed_FloatToFixed( 0.927224f ),
    CMathFixed_FloatToFixed( 0.927798f ), CMathFixed_FloatToFixed( 0.928369f ),
    CMathFixed_FloatToFixed( 0.928939f ), CMathFixed_FloatToFixed( 0.929506f ),
    CMathFixed_FloatToFixed( 0.930072f ), CMathFixed_FloatToFixed( 0.930635f ),
    CMathFixed_FloatToFixed( 0.931195f ), CMathFixed_FloatToFixed( 0.931754f ),
    CMathFixed_FloatToFixed( 0.932311f ), CMathFixed_FloatToFixed( 0.932865f ),
    CMathFixed_FloatToFixed( 0.933417f ), CMathFixed_FloatToFixed( 0.933967f ),
    CMathFixed_FloatToFixed( 0.934514f ), CMathFixed_FloatToFixed( 0.935060f ),
    CMathFixed_FloatToFixed( 0.935603f ), CMathFixed_FloatToFixed( 0.936144f ),
    CMathFixed_FloatToFixed( 0.936683f ), CMathFixed_FloatToFixed( 0.937219f ),
    CMathFixed_FloatToFixed( 0.937754f ), CMathFixed_FloatToFixed( 0.938286f ),
    CMathFixed_FloatToFixed( 0.938816f ), CMathFixed_FloatToFixed( 0.939344f ),
    CMathFixed_FloatToFixed( 0.939869f ), CMathFixed_FloatToFixed( 0.940393f ),
    CMathFixed_FloatToFixed( 0.940914f ), CMathFixed_FloatToFixed( 0.941433f ),
    CMathFixed_FloatToFixed( 0.941949f ), CMathFixed_FloatToFixed( 0.942464f ),
    CMathFixed_FloatToFixed( 0.942976f ), CMathFixed_FloatToFixed( 0.943486f ),
    CMathFixed_FloatToFixed( 0.943994f ), CMathFixed_FloatToFixed( 0.944499f ),
    CMathFixed_FloatToFixed( 0.945003f ), CMathFixed_FloatToFixed( 0.945504f ),
    CMathFixed_FloatToFixed( 0.946003f ), CMathFixed_FloatToFixed( 0.946499f ),
    CMathFixed_FloatToFixed( 0.946994f ), CMathFixed_FloatToFixed( 0.947486f ),
    CMathFixed_FloatToFixed( 0.947976f ), CMathFixed_FloatToFixed( 0.948464f ),
    CMathFixed_FloatToFixed( 0.948949f ), CMathFixed_FloatToFixed( 0.949432f ),
    CMathFixed_FloatToFixed( 0.949913f ), CMathFixed_FloatToFixed( 0.950392f ),
    CMathFixed_FloatToFixed( 0.950868f ), CMathFixed_FloatToFixed( 0.951343f ),
    CMathFixed_FloatToFixed( 0.951815f ), CMathFixed_FloatToFixed( 0.952285f ),
    CMathFixed_FloatToFixed( 0.952752f ), CMathFixed_FloatToFixed( 0.953217f ),
    CMathFixed_FloatToFixed( 0.953680f ), CMathFixed_FloatToFixed( 0.954141f ),
    CMathFixed_FloatToFixed( 0.954600f ), CMathFixed_FloatToFixed( 0.955056f ),
    CMathFixed_FloatToFixed( 0.955510f ), CMathFixed_FloatToFixed( 0.955962f ),
    CMathFixed_FloatToFixed( 0.956411f ), CMathFixed_FloatToFixed( 0.956859f ),
    CMathFixed_FloatToFixed( 0.957304f ), CMathFixed_FloatToFixed( 0.957747f ),
    CMathFixed_FloatToFixed( 0.958187f ), CMathFixed_FloatToFixed( 0.958625f ),
    CMathFixed_FloatToFixed( 0.959061f ), CMathFixed_FloatToFixed( 0.959495f ),
    CMathFixed_FloatToFixed( 0.959927f ), CMathFixed_FloatToFixed( 0.960356f ),
    CMathFixed_FloatToFixed( 0.960783f ), CMathFixed_FloatToFixed( 0.961207f ),
    CMathFixed_FloatToFixed( 0.961630f ), CMathFixed_FloatToFixed( 0.962050f ),
    CMathFixed_FloatToFixed( 0.962468f ), CMathFixed_FloatToFixed( 0.962883f ),
    CMathFixed_FloatToFixed( 0.963297f ), CMathFixed_FloatToFixed( 0.963708f ),
    CMathFixed_FloatToFixed( 0.964117f ), CMathFixed_FloatToFixed( 0.964523f ),
    CMathFixed_FloatToFixed( 0.964927f ), CMathFixed_FloatToFixed( 0.965329f ),
    CMathFixed_FloatToFixed( 0.965729f ), CMathFixed_FloatToFixed( 0.966126f ),
    CMathFixed_FloatToFixed( 0.966522f ), CMathFixed_FloatToFixed( 0.966914f ),
    CMathFixed_FloatToFixed( 0.967305f ), CMathFixed_FloatToFixed( 0.967693f ),
    CMathFixed_FloatToFixed( 0.968079f ), CMathFixed_FloatToFixed( 0.968463f ),
    CMathFixed_FloatToFixed( 0.968844f ), CMathFixed_FloatToFixed( 0.969224f ),
    CMathFixed_FloatToFixed( 0.969600f ), CMathFixed_FloatToFixed( 0.969975f ),
    CMathFixed_FloatToFixed( 0.970347f ), CMathFixed_FloatToFixed( 0.970717f ),
    CMathFixed_FloatToFixed( 0.971085f ), CMathFixed_FloatToFixed( 0.971451f ),
    CMathFixed_FloatToFixed( 0.971814f ), CMathFixed_FloatToFixed( 0.972175f ),
    CMathFixed_FloatToFixed( 0.972533f ), CMathFixed_FloatToFixed( 0.972889f ),
    CMathFixed_FloatToFixed( 0.973243f ), CMathFixed_FloatToFixed( 0.973595f ),
    CMathFixed_FloatToFixed( 0.973944f ), CMathFixed_FloatToFixed( 0.974292f ),
    CMathFixed_FloatToFixed( 0.974636f ), CMathFixed_FloatToFixed( 0.974979f ),
    CMathFixed_FloatToFixed( 0.975319f ), CMathFixed_FloatToFixed( 0.975657f ),
    CMathFixed_FloatToFixed( 0.975993f ), CMathFixed_FloatToFixed( 0.976326f ),
    CMathFixed_FloatToFixed( 0.976657f ), CMathFixed_FloatToFixed( 0.976986f ),
    CMathFixed_FloatToFixed( 0.977312f ), CMathFixed_FloatToFixed( 0.977636f ),
    CMathFixed_FloatToFixed( 0.977958f ), CMathFixed_FloatToFixed( 0.978277f ),
    CMathFixed_FloatToFixed( 0.978594f ), CMathFixed_FloatToFixed( 0.978909f ),
    CMathFixed_FloatToFixed( 0.979222f ), CMathFixed_FloatToFixed( 0.979532f ),
    CMathFixed_FloatToFixed( 0.979840f ), CMathFixed_FloatToFixed( 0.980146f ),
    CMathFixed_FloatToFixed( 0.980449f ), CMathFixed_FloatToFixed( 0.980750f ),
    CMathFixed_FloatToFixed( 0.981049f ), CMathFixed_FloatToFixed( 0.981345f ),
    CMathFixed_FloatToFixed( 0.981639f ), CMathFixed_FloatToFixed( 0.981931f ),
    CMathFixed_FloatToFixed( 0.982220f ), CMathFixed_FloatToFixed( 0.982507f ),
    CMathFixed_FloatToFixed( 0.982792f ), CMathFixed_FloatToFixed( 0.983075f ),
    CMathFixed_FloatToFixed( 0.983355f ), CMathFixed_FloatToFixed( 0.983633f ),
    CMathFixed_FloatToFixed( 0.983908f ), CMathFixed_FloatToFixed( 0.984181f ),
    CMathFixed_FloatToFixed( 0.984452f ), CMathFixed_FloatToFixed( 0.984721f ),
    CMathFixed_FloatToFixed( 0.984987f ), CMathFixed_FloatToFixed( 0.985251f ),
    CMathFixed_FloatToFixed( 0.985512f ), CMathFixed_FloatToFixed( 0.985772f ),
    CMathFixed_FloatToFixed( 0.986029f ), CMathFixed_FloatToFixed( 0.986283f ),
    CMathFixed_FloatToFixed( 0.986536f ), CMathFixed_FloatToFixed( 0.986786f ),
    CMathFixed_FloatToFixed( 0.987033f ), CMathFixed_FloatToFixed( 0.987279f ),
    CMathFixed_FloatToFixed( 0.987522f ), CMathFixed_FloatToFixed( 0.987762f ),
    CMathFixed_FloatToFixed( 0.988001f ), CMathFixed_FloatToFixed( 0.988236f ),
    CMathFixed_FloatToFixed( 0.988470f ), CMathFixed_FloatToFixed( 0.988702f ),
    CMathFixed_FloatToFixed( 0.988931f ), CMathFixed_FloatToFixed( 0.989157f ),
    CMathFixed_FloatToFixed( 0.989382f ), CMathFixed_FloatToFixed( 0.989604f ),
    CMathFixed_FloatToFixed( 0.989823f ), CMathFixed_FloatToFixed( 0.990041f ),
    CMathFixed_FloatToFixed( 0.990256f ), CMathFixed_FloatToFixed( 0.990468f ),
    CMathFixed_FloatToFixed( 0.990679f ), CMathFixed_FloatToFixed( 0.990887f ),
    CMathFixed_FloatToFixed( 0.991092f ), CMathFixed_FloatToFixed( 0.991296f ),
    CMathFixed_FloatToFixed( 0.991497f ), CMathFixed_FloatToFixed( 0.991695f ),
    CMathFixed_FloatToFixed( 0.991892f ), CMathFixed_FloatToFixed( 0.992086f ),
    CMathFixed_FloatToFixed( 0.992277f ), CMathFixed_FloatToFixed( 0.992466f ),
    CMathFixed_FloatToFixed( 0.992653f ), CMathFixed_FloatToFixed( 0.992838f ),
    CMathFixed_FloatToFixed( 0.993020f ), CMathFixed_FloatToFixed( 0.993200f ),
    CMathFixed_FloatToFixed( 0.993378f ), CMathFixed_FloatToFixed( 0.993553f ),
    CMathFixed_FloatToFixed( 0.993726f ), CMathFixed_FloatToFixed( 0.993897f ),
    CMathFixed_FloatToFixed( 0.994065f ), CMathFixed_FloatToFixed( 0.994231f ),
    CMathFixed_FloatToFixed( 0.994394f ), CMathFixed_FloatToFixed( 0.994555f ),
    CMathFixed_FloatToFixed( 0.994714f ), CMathFixed_FloatToFixed( 0.994871f ),
    CMathFixed_FloatToFixed( 0.995025f ), CMathFixed_FloatToFixed( 0.995177f ),
    CMathFixed_FloatToFixed( 0.995326f ), CMathFixed_FloatToFixed( 0.995473f ),
    CMathFixed_FloatToFixed( 0.995618f ), CMathFixed_FloatToFixed( 0.995760f ),
    CMathFixed_FloatToFixed( 0.995901f ), CMathFixed_FloatToFixed( 0.996038f ),
    CMathFixed_FloatToFixed( 0.996174f ), CMathFixed_FloatToFixed( 0.996307f ),
    CMathFixed_FloatToFixed( 0.996437f ), CMathFixed_FloatToFixed( 0.996566f ),
    CMathFixed_FloatToFixed( 0.996692f ), CMathFixed_FloatToFixed( 0.996815f ),
    CMathFixed_FloatToFixed( 0.996937f ), CMathFixed_FloatToFixed( 0.997055f ),
    CMathFixed_FloatToFixed( 0.997172f ), CMathFixed_FloatToFixed( 0.997286f ),
    CMathFixed_FloatToFixed( 0.997398f ), CMathFixed_FloatToFixed( 0.997508f ),
    CMathFixed_FloatToFixed( 0.997615f ), CMathFixed_FloatToFixed( 0.997720f ),
    CMathFixed_FloatToFixed( 0.997822f ), CMathFixed_FloatToFixed( 0.997922f ),
    CMathFixed_FloatToFixed( 0.998020f ), CMathFixed_FloatToFixed( 0.998115f ),
    CMathFixed_FloatToFixed( 0.998208f ), CMathFixed_FloatToFixed( 0.998299f ),
    CMathFixed_FloatToFixed( 0.998387f ), CMathFixed_FloatToFixed( 0.998473f ),
    CMathFixed_FloatToFixed( 0.998557f ), CMathFixed_FloatToFixed( 0.998638f ),
    CMathFixed_FloatToFixed( 0.998717f ), CMathFixed_FloatToFixed( 0.998794f ),
    CMathFixed_FloatToFixed( 0.998868f ), CMathFixed_FloatToFixed( 0.998940f ),
    CMathFixed_FloatToFixed( 0.999009f ), CMathFixed_FloatToFixed( 0.999077f ),
    CMathFixed_FloatToFixed( 0.999141f ), CMathFixed_FloatToFixed( 0.999204f ),
    CMathFixed_FloatToFixed( 0.999264f ), CMathFixed_FloatToFixed( 0.999322f ),
    CMathFixed_FloatToFixed( 0.999377f ), CMathFixed_FloatToFixed( 0.999430f ),
    CMathFixed_FloatToFixed( 0.999481f ), CMathFixed_FloatToFixed( 0.999529f ),
    CMathFixed_FloatToFixed( 0.999575f ), CMathFixed_FloatToFixed( 0.999619f ),
    CMathFixed_FloatToFixed( 0.999660f ), CMathFixed_FloatToFixed( 0.999699f ),
    CMathFixed_FloatToFixed( 0.999735f ), CMathFixed_FloatToFixed( 0.999769f ),
    CMathFixed_FloatToFixed( 0.999801f ), CMathFixed_FloatToFixed( 0.999831f ),
    CMathFixed_FloatToFixed( 0.999858f ), CMathFixed_FloatToFixed( 0.999882f ),
    CMathFixed_FloatToFixed( 0.999905f ), CMathFixed_FloatToFixed( 0.999925f ),
    CMathFixed_FloatToFixed( 0.999942f ), CMathFixed_FloatToFixed( 0.999958f ),
    CMathFixed_FloatToFixed( 0.999971f ), CMathFixed_FloatToFixed( 0.999981f ),
    CMathFixed_FloatToFixed( 0.999989f ), CMathFixed_FloatToFixed( 0.999995f ),
    CMathFixed_FloatToFixed( 0.999999f )
};

#endif


fixed CMathFixed::Sin( fixed degrees )
{
	int32 val, idx;
	boolean neg = FALSE;
	boolean flip = FALSE;

	if( degrees < 0 )
	{
		degrees = -degrees;
		flip = TRUE;
	}

	if( degrees >= Degrees_360 )
		degrees %= Degrees_360;

	if( degrees > Degrees_180 )
	{
		degrees = Degrees_360 - degrees;
		neg = TRUE;
	}

	if( degrees > Degrees_90 && degrees <= Degrees_180 )
		degrees = Degrees_180 - degrees;
	
	idx = Div( degrees, CMathFixed_FloatToFixed( 90.0f / Sin_NumOfEntriesInLUT ) );
		
//	fixed frac = GetFraction( idx );

	idx >>= FBits;
	
	if( idx < Sin_NumOfEntriesInLUT )
	{
	//	fixed v0 = SinLUT[ idx ];

		// if( idx + 1 < Sin_NumOfEntriesInLUT )
		{
			val = SinLUT[ idx ];
		}
	}
	else
		val = One;

	if( neg )
		val = -val;

	if( flip )
		val = -val;

	return val; 
}
